How do I create an offset buffer around an alphaShape?

4 次查看(过去 30 天)
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!

回答(2 个)

Yash
Yash 2024-1-10
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 2024-1-10
编辑:Matt J 2024-1-10
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.

类别

Help CenterFile Exchange 中查找有关 Bounding Regions 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by