我有一组无序的顶点,可能形成一个凹多边形。现在我希望将它们按顺时针或逆时针排序。
这里的答案 建议以下步骤:
- 找到多边形中心
- 计算角度
- 按角度对点进行排序
这显然仅适用于凸多边形,当点形成凹多边形时会失败。
如何对凹多边形进行排序?
我在使用Python,但欢迎所有通用答案。
这里的答案 建议以下步骤:
这显然仅适用于凸多边形,当点形成凹多边形时会失败。
如何对凹多边形进行排序?
我在使用Python,但欢迎所有通用答案。
你认为这些非凸多边形中哪一个是“正确”的连接方式?
显然,你可以使用各种可能的标准来选择不同的顺序。例如,你可能想选择使边的总长度最小的排序方式,如果点实际上相对靠近简单多边形的边界,则应该得到相当“合理”的结果:
很遗憾,对于一般的点集来说,找到使总边长最小的排序方式是一个众所周知的NP完全问题。尽管如此,有许多启发式算法可以快速地通常找到几乎最优解,即使它们不能保证找到的解是真正的最小值。