从无序顶点创建凸多边形

时间:2021-02-13 23:45:24

标签: python polygon voronoi

简短版本:
给定:凸 3d 多边形的顶点
寻找:连接顶点的边,s.t.多边形是凸的。

长版:
我从一堆 3d 点开始,并使用 voronoi tessalation 计算了 this function from the scipy.spatial package。我实际上正在寻找正确的边缘来获取由它创建的多边形,但我不明白包是如何做到的。

目前我只是想出了如何获取顶点以及它们属于哪个多边形,但仅知道多边形的顶点不足以重新创建它,除非我得到边缘。那么我如何获得它们呢?是否有一种简单的方法可以做到这一点甚至更好:一个可以为我做的包?

因为我知道它一定是凸面的,所以我对 2d-case 有一个想法(基本上只是围绕多边形的中心(平均值)盘旋并连接彼此跟随的顶点),但我不知道这是否方法可以在 3d 中工作,或者它甚至可以创建一个凸多边形。我还认为这种方法可能不可靠和/或需要大量时间来计算。

如果需要,我可以提供代码,但我认为这不会有帮助。

1 个答案:

答案 0 :(得分:0)

感谢bb1 提供the answer :) scipy.spatial.ConvexHull 完成这项工作。 (从技术上讲,它并没有 100% 有效,但我认为这可能是 3d 中出现的不同问题。)