我有几个二维圆圈,我想画一个边框。我之前使用的是一个凸壳,但我的目标是使边界几乎像周围的“斑点”。我附上一张照片来说明我的意思。
基本上,我希望边框勾勒出圆圈,如果没有圆圈,则将其略微拉到该区域的中间。中心形状显示了我当前的思路 - 为每个圆创建法线,并以某种方式将它们合并为一个完整的形状。
总结一下,我有两个问题: 1.有没有现成的算法? 2.如果没有,是否有任何算法可以帮助我将圆形轮廓合并为一个更大的路径?
谢谢!
答案 0 :(得分:3)
“你一直想知道关于阿尔法形状的一切,但我们都不敢问”是给你的http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/alpha.html
答案 1 :(得分:1)
获得此边界的一种方法是简单地计算到圆心的距离:对于给定点,此距离是从该点到给定圆的所有中心的距离的最小值。然后在常规网格上对此距离函数进行采样。最后使用isocurve提取算法(如Marching Squares)将此函数的f
级提取为折线集合。 f
应该是用所需边距增加的圆的半径。