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

标签 python math geometry gis computational-geometry

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

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

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

我尝试过主要是 qhull 的凸包,边缘尺寸有限,但效果有限。 我还注意到一些无法分发的许可库,所以不幸的是,这不在讨论之列。 有更好的想法或食谱吗?

最佳答案

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

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

关于python - 你如何从一系列点生成非凸包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620446/

相关文章:

math - 在链表中 x←y 是怎么表达的?

opencv - 应该如何找到头部相对于相机的角度?

JavaScript:获取日期差异并将月份转换为年份

math - 根据 Google 的 Jeff Dean 的请求延迟

c++ - 整数点的逆时针排序

algorithm - 线段交叉实现

python - 完全相同的 python 代码在更快的机器上慢 20 倍?

python - 批量大小如何影响神经网络的时间执行?

python - 在 python 中向 csv 或 excel 文件添加一个带组的空行

Python 异常链