排序坐标列表

时间:2015-06-20 03:40:25

标签: geometry coordinates

我有以下问题: 我有一个多边形点的所有x,y坐标列表。 我现在需要以这样的方式对它们进行排序,以便获得a中的点数 顺时针顺序。

目前我有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

提前致谢,

1 个答案:

答案 0 :(得分:3)

使用极坐标:

  1. 找到多边形的内部点作为参考,比如说(c,d);
  2. 对多边形的每个顶点(x,y)使用atan2(x-c, y-d)以获得该内部点的极角;然后
  3. 按你所获得的角度排序。
  4. 如果多边形是凸的,那么平均x的最大值和最小值以及y的平均值应该得到一个内部点。否则,你还有更多工作要做。