" Blob"的算法边界

时间:2014-04-09 14:50:35

标签: algorithm geometry border

我有几个二维圆圈,我想画一个边框。我之前使用的是一个凸壳,但我的目标是使边界几乎像周围的“斑点”。我附上一张照片来说明我的意思。

enter image description here 基本上,我希望边框勾勒出圆圈,如果没有圆圈,则将其略微拉到该区域的中间。中心形状显示了我当前的思路 - 为每个圆创建法线,并以某种方式将它们合并为一个完整的形状。

总结一下,我有两个问题:     1.有没有现成的算法?     2.如果没有,是否有任何算法可以帮助我将圆形轮廓合并为一个更大的路径?

谢谢!

2 个答案:

答案 0 :(得分:3)

“你一直想知道关于阿尔法形状的一切,但我们都不敢问”是给你的http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/alpha.html

答案 1 :(得分:1)

获得此边界的一种方法是简单地计算到圆心的距离:对于给定点,此距离是从该点到给定圆的所有中心的距离的最小值。然后在常规网格上对此距离函数进行采样。最后使用isocurve提取算法(如Marching Squares)将此函数的f级提取为折线集合。 f应该是用所需边距增加的圆的半径。