Voronoi图由圆形游览约束

时间:2014-10-08 15:37:31

标签: c computational-geometry voronoi

我遇到以下问题:
我给出了点云P和该点云B的子集.B中的节点b构成(整个)点云P的边界。(事实上,B是作为封闭的,定向的圆形巡回线给出的)。现在,我想计算P的Voronoi图,与B相交,并提取每个(相交的)Voronoi多边形的面积。以下是对情况的说明: http://f.666kb.com/i/cshix1s881107ghfw.png
基本上我想将蓝色多边形与绿色部分相交。 我的问题:

  • 是否有偶然的C库可以解决这个问题?
  • 如果没有,是否有更好的方法来解决这个问题,然后使用一些库计算Voronoi图,然后明确地将(绿色)段与库输出中的多边形相交?也许通过利用受约束的Delaunay三角剖分?

PS:我知道使用CGAL可能会有这个壮举。但是,从未使用过CGAL,CGAL似乎相当复杂,而this之类的示例代码似乎远非直截了当。另外,我更倾向于使用C语言的解决方案。

1 个答案:

答案 0 :(得分:0)

所以我决定反对alpha形状,因为我已经知道确切的边界,并且不想微调alpha值以避免内部的洞。相反,我使用Ante的评论来提出CGAL中的实现。如果有人有兴趣,可以找到here。我对CGAL的使用可能非常笨拙,我可以说我来自C世界,但这是一个开始。可以找到测试输入here(in.txt)和here(bnd_ind.txt)。输出的可视化(边界处突出显示的切割面)http://666kb.com/i/csphx8ow43habobik.gif