按顺时针顺序排列坐标

时间:2012-07-05 20:29:14

标签: c++ objective-c c math screen-scraping

我有9个屏幕坐标,每个坐标代表9个位置中的一个。从右上角开始,我希望该位置从第一个位置开始,以下顺时针坐标表示第二个,第三个,第四个等,直到第9个,这将是左上角坐标。

这里有人能够提出某种数学方法来确定9个坐标中的哪个位于哪个位置?它们彼此相对,并且永远是彼此相对的。

示例坐标可以是:

(x,y)
X   Y
663 382
543 454
303 454
183 382
418 459
543 209
303 209
653 259
183 259

绘制成图像: Representation of coordinates

有人会有任何想法吗?我只是想要一种以顺时针方式列出这些坐标的编程方式......

2 个答案:

答案 0 :(得分:8)

找到“圆”的中心,即平均X和平均Y

移动X和Y值,使所有值都相对于新中心。

转换为极坐标并按角度排序。

答案 1 :(得分:0)

假设我理解正确,我会做类似

的事情

newPosition =(originalPosition +#of rotation)mod 8

我假设第一个位置为0,并且你只能按顺序顺时针跳转整数增量(因此旋转#)