给定多边形的边(例如:边1(x1,y1),(x2,y2))找到多边形顶点的顺时针或逆时针排序
答案 0 :(得分:0)
通过计算所有点上的平均坐标来查找多边形的中心=> (xc, yc)
。然后根据它们围绕此点的旋转角度对点进行排序。
对于两个向量,排序的比较操作可以是 2D交叉产品:(a, b) ^ (c, d) = a * d - b * c
;如果这是肯定的,则(c, d)
相对于(a, b)
顺时针顺时针旋转,反之亦然。
在代码中,比较两个点的操作是(x1 - xc, y1 - yc) ^ (x2 - xc, y2 - yc) > 0
。如果是这样,则(x2, y2)
位于(x1, y1)
的“右侧”,反之亦然。