Python 如何从一系列点生成非凸外壳?

Python 如何从一系列点生成非凸外壳?,python,math,geometry,gis,computational-geometry,Python,Math,Geometry,Gis,Computational Geometry,我目前正试图在一段运行期内建造设备覆盖的区域。 这个过程的第一步似乎是构建覆盖区域的多边形。 由于图案不是标准形状,凸面外壳通过跳到可能的最大覆盖区域来夸大覆盖区域 我发现一篇论文似乎涵盖了非凸壳生成的概念,但没有讨论如何在高级语言中实现这一点。 有没有人见过构造非凸壳或凹壳的直接算法,或者任何python代码来实现相同的结果 我尝试过凸面外壳,主要是qhull,边缘尺寸有限,成功率有限。 此外,我还注意到一些授权库将无法分发,因此很遗憾,这是不可能的。 有更好的主意或食谱吗 您可以尝试查看A

我目前正试图在一段运行期内建造设备覆盖的区域。 这个过程的第一步似乎是构建覆盖区域的多边形。 由于图案不是标准形状,凸面外壳通过跳到可能的最大覆盖区域来夸大覆盖区域

我发现一篇论文似乎涵盖了非凸壳生成的概念,但没有讨论如何在高级语言中实现这一点。

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

我尝试过凸面外壳,主要是qhull,边缘尺寸有限,成功率有限。 此外,我还注意到一些授权库将无法分发,因此很遗憾,这是不可能的。
有更好的主意或食谱吗

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


编辑:我看到您链接的纸张引用了alpha形状,并且还有一个算法列表。这对你来说还不够高吗?由于您将python列为标记,我确信python中有Delaunay三角剖分库,我认为这是实现该算法最困难的部分;您只需确保可以修改生成的三角剖分输出。边界查询功能可能可以通过关联数组实现。

可能相关信息:问题是否定义明确?你想要任何覆盖这些点的非凸外壳吗?还是有一些额外的限制?考虑三个点,形成一个等边三角形和第四个中心点。有(至少)三个可能的非凸面外壳将这些点包围起来。哇,所有这些不同的stackexchange站点都能很好地将问题转移到能够回答问题的人的视野之外(不幸的是,您提到的CGAL的python绑定不再使用最新版本的boost python和CGAL进行编译。似乎该项目不再受到真正的支持。是否还有其他python替代方案?