让v_{0},...,v_{N-1}定义闭合多边形顶点的笛卡尔xy平面中的N个点(即v_{N} = v_{0})。让一个位于多边形内的点,即先验P_{0}未知的点。
我正在寻找一种强大的算法来对列表进行v_{0},...,v_{N-1}顺时针/逆时针排序P_{0}。我知道,如果多边形是凸的,则以下算法效果很好:
- 计算
P_{0}为 的平均值v_{0},...,v_{N-1}; - 计算
atan2 = (y_i-y_0/x_i-x_0)每个顶点定义的角度并将其保存到数组中; - 使用角度数组作为键对顶点进行排序。
我想知道是否存在一种能够处理各种多边形的算法,也是非凸的。
