How do I create an offset buffer around an alphaShape?

7 views (last 30 days)
Hi,
Currently I have a 2D alphashape that I wish to scale very slightly larger. Instead of scale one could also describe what I want by offsetting the perimeter or creating a buffer. In fact polybuffer does exactly what I want, however only accepts polyshape arguments. I was just curious if anyone had a method for this for alphaShape arguments. For now I will just create a triangulation of the alphaShape and then convert it to a polyshape so I can use polybuffer and either keep it there or resample to an alphashape. Also, for learning purposes if anyone can offer an explanation to why alphaShape has so many functions but not a buffer function like polyshape I truly am interested.
Thanks anyone and everyone!

Answers (2)

Yash
Yash on 10 Jan 2024
Hey Eric,
You can try converting the alphaShape to a polygon using the 'alphaTriangulation' function and then use the 'polybuffer' function to create a buffer around the polygon. After that, you can convert the buffered polygon back to an alphaShape if needed.
To know more about the 'alphaTriangulation' and 'polybuffer' functions, refer to the documentations below:
Hope this helps!

Matt J
Matt J on 10 Jan 2024
Edited: Matt J on 10 Jan 2024
Also, for learning purposes if anyone can offer an explanation to why alphaShape has so many functions but not a buffer function like polyshape I truly am interested.
Probably because if you dilate an alphashape with polybuffer-type function, it is not clear that the resulting shape is still in the family of alphashapes, or if it is, what the new alpha-radius and point-set would be.

Categories

Find more on Bounding Regions in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!