排序坐标列表
Sort list of coordinates
我遇到以下问题:
我有一个多边形点的所有 x、y 坐标的列表。
我现在需要以这样一种方式对它们进行排序,以便在
顺时针顺序。
目前我有 6 个坐标可以绘制多边形,但顺序不对。
有人知道怎么做吗?
Input coordinates :
Coordinate: 506.6609866568262, 673.970398950142
Coordinate: 505.34898334317376, 682.8179210498581
Coordinate: 502.0723751660178, 680.523615304454
Coordinate: 534.3026433431738, 682.736131049858
Coordinate: 535.6146466568263, 673.8886089501419
Coordinate: 538.8912548339822, 676.1829146955461
Output coordinates :
Coordinate: 506.6609866568262, 673.970398950142
Coordinate: 502.0723751660178, 680.523615304454
Coordinate: 505.34898334317376, 682.8179210498581
Coordinate: 534.3026433431738, 682.736131049858
Coordinate: 538.8912548339822, 676.1829146955461
Coordinate: 535.6146466568263, 673.8886089501419
提前致谢,
使用极坐标:
- 找到多边形的内部点作为参考,例如 (c,d);
- 对多边形的每个顶点 (x,y) 使用
atan2(x-c, y-d)
以从该内点获取极角;然后
- 按你得到的角度排序。
如果多边形是凸面,则对 x 的最大值和最小值求平均值,对于 y 也同样如此,应该可以得到一个内点。否则,您还有更多工作要做。
我遇到以下问题: 我有一个多边形点的所有 x、y 坐标的列表。 我现在需要以这样一种方式对它们进行排序,以便在 顺时针顺序。
目前我有 6 个坐标可以绘制多边形,但顺序不对。
有人知道怎么做吗?
Input coordinates : Coordinate: 506.6609866568262, 673.970398950142 Coordinate: 505.34898334317376, 682.8179210498581 Coordinate: 502.0723751660178, 680.523615304454 Coordinate: 534.3026433431738, 682.736131049858 Coordinate: 535.6146466568263, 673.8886089501419 Coordinate: 538.8912548339822, 676.1829146955461 Output coordinates : Coordinate: 506.6609866568262, 673.970398950142 Coordinate: 502.0723751660178, 680.523615304454 Coordinate: 505.34898334317376, 682.8179210498581 Coordinate: 534.3026433431738, 682.736131049858 Coordinate: 538.8912548339822, 676.1829146955461 Coordinate: 535.6146466568263, 673.8886089501419
提前致谢,
使用极坐标:
- 找到多边形的内部点作为参考,例如 (c,d);
- 对多边形的每个顶点 (x,y) 使用
atan2(x-c, y-d)
以从该内点获取极角;然后 - 按你得到的角度排序。
如果多边形是凸面,则对 x 的最大值和最小值求平均值,对于 y 也同样如此,应该可以得到一个内点。否则,您还有更多工作要做。