我和这里有同样的问题:如何在一个简单的非凸多边形中对顶点进行排序, 但没有我可以使用的解决方案。
我有点坐标,需要找到一些多边形。一个点列表有更多解决方案并不重要。我需要一些算法来找到其中一个。无所谓是哪一个。我真的不知道如何解决这个问题。
(我已将坐标存储在数组中,我想在 Javascript 中使用一些算法)
非常感谢。
我和这里有同样的问题:如何在一个简单的非凸多边形中对顶点进行排序, 但没有我可以使用的解决方案。
我有点坐标,需要找到一些多边形。一个点列表有更多解决方案并不重要。我需要一些算法来找到其中一个。无所谓是哪一个。我真的不知道如何解决这个问题。
(我已将坐标存储在数组中,我想在 Javascript 中使用一些算法)
非常感谢。
首先,找到包含所有顶点的边界框的中心。我们将此点称为 C。
根据每个点相对于 C 的角度对顶点列表进行排序。您可以使用它来查找角度。如果两个或多个顶点具有相同的角度,则靠近 C 的那个应该排在第一位。atan2
(point.y - C.y, point.x - C.x)
然后,按照它们在列表中出现的顺序绘制你的点。您最终会得到一个不相交且可能非凸的星爆图案。例子: