如何从一系列点生成非凸包?

时间:2010-09-01 17:06:44

标签: python math geometry gis computational-geometry

我目前正在尝试在一个运营期间构建设备所覆盖的区域。 此过程的第一步似乎是构建覆盖区域的多边形。 由于该图案不是标准形状,因此凸起的船体通过跳到可能的最大覆盖区域来夸大覆盖区域。

我发现一篇论文似乎涵盖了非凸壳生成的概念,但没有讨论如何在高级语言中实现这一点。 http://www.geosensor.net/papers/duckham08.PR.pdf

有没有人看过构建非凸壳或凹壳或者任何python代码的直接算法来实现相同的结果?

我尝试了主要是qhull的凸包,边缘有限,成功有限。 此外,我注意到一些许可的库将无法分发,所以不幸的是,这已经脱离了桌面。 有更好的想法或烹饪书吗?

1 个答案:

答案 0 :(得分:4)

您可以尝试查看Alpha Shapes。 CGAL库可以计算它们。

编辑:我看到你链接的论文引用了alpha形状,并且还有一个算法列表。这对你来说不够高吗?既然你把python列为标签,我确信Python中有Delaunay三角剖分库,我认为这是实现算法最困难的部分;你只需要确保你可以修改产生的三角测量输出。边界查询函数可以用关联数组实现。