繁体   English   中英

顺时针(逆)排序CONCAVE多边形顶点?

[英]Ordering CONCAVE polygon vertices in (counter)clockwise?

我有一组无序顶点,可能形成一个凹多边形。 现在我希望顺时针或逆时针订购它们。

这里的答案表明以下步骤:

  • 找到多边形中心
  • 计算角度
  • 按角度订购点数

这显然仅适用于凸多边形,并且当这些点形成凹面时会失败。

我怎么能这样做呢?

我正在使用Python,但欢迎所有通用答案。

一般来说,你的问题似乎不明确。 例如,给定以下顶点集:

平面上的四个点以非凸排列

您认为哪些非凸多边形是连接它们的“正确”方法?

多边形ABCDPolygon ACDB多边形ACBD

现在,很明显,您可以使用各种可能的标准来选择不同的可能订单。 例如,您可能希望选择最小化边长度的排序,如果这些点实际上在简单多边形的边界上彼此非常接近,则应该产生相当“合理”的结果:

具有许多顶点的简单非凸多边形

不幸的是,对于一组通用点,找到最小化总边长的排序结果是众所周知的NP完全问题 也就是说,有许多启发式算法 通常可以快速找到近乎最优的解决方案,即使他们不能总是保证他们找到的解决方案是真正的最小值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM