Algorithm 创建穿过所有给定点的凹多边形

Algorithm 创建穿过所有给定点的凹多边形,algorithm,geometry,polygon,convex-hull,concave,Algorithm,Geometry,Polygon,Convex Hull,Concave,给定一组点,我想使用这些点创建一个凹面非相交多边形。凸面外壳会抵消凹面部分,而通过x/y坐标或从中心的角度对其进行排列会产生尖锐的人工制品。有没有一个简单的方法可以做到这一点 我要创建的多边形类型的示例: 如果只有周长顶点,并且可以保证周长顶点之间的距离小于周长边之间的距离,则可以使用最小生成树 顶部示例显示了MST的工作位置(结果多段线中的第一个和最后一个顶点已连接) 下面的示例是当周长的边太近时会发生什么情况。…什么点集?定义凹多边形边界的一组点。请参见,您的问题是欠约束的,有许多凹形非相

给定一组点,我想使用这些点创建一个凹面非相交多边形。凸面外壳会抵消凹面部分,而通过x/y坐标或从中心的角度对其进行排列会产生尖锐的人工制品。有没有一个简单的方法可以做到这一点

我要创建的多边形类型的示例:


如果只有周长顶点,并且可以保证周长顶点之间的距离小于周长边之间的距离,则可以使用最小生成树

顶部示例显示了MST的工作位置(结果多段线中的第一个和最后一个顶点已连接)


下面的示例是当周长的边太近时会发生什么情况。

…什么点集?定义凹多边形边界的一组点。请参见,您的问题是欠约束的,有许多凹形非相交多边形适合您的示例点。也许你也想要最小周长的多边形?谢谢。实际上,我有大量的数据集,我不能保证对于每个数据集,周长顶点之间的距离将小于周长边之间的距离。有没有一种方法不假设这一点?这个问题的答案用更一般的解决方案讨论了一些问题: