2012-07-05 4 views
4

저는 9 개의 화면 좌표 중 하나를 나타내는 9 개의 좌표를가집니다. 오른쪽 위부터 첫 번째 위치로 시작하고 다음 시계 방향으로 두 번째, 세 번째, 네 번째 등을 나타내는 좌표를 9 번째까지, 즉 왼쪽 위 좌표로 지정합니다.좌표를 시계 방향으로 배열하십시오.

아무도 9 가지 좌표 중 어느 것이 어느 위치에 있는지를 결정하는 수학적 수단을 생각해 낼 수 있습니까? 그들은 모두 서로에 대해 상대적이며, 항상 서로에 비례합니다.

예 좌표가 될 수있다 : Representation of coordinates

이 사람이 어떤 아이디어가겠습니까 :

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

같은 이미지 무언가로 플로팅? 단순히 시계 방향으로이 좌표를 나열하는 프로그램 방식의 어떤 형태의 ...

답변

8

는 "원"즉, 평균 X 평균 Y

시프트 X 및 Y 값 정도의 중심을 찾기 원하는 모두 새로운 중심에 상대적입니다.

극좌표로 변환하고 각도별로 정렬하십시오.

+0

센트로이드 주위로 각도별로 정렬하는 것이 좋습니다. 그러나 시계 방향으로 "오른쪽 상단"에서 시작해야하는 경우 몇 가지 세부 사항이 남아 있습니다 각도를 정의 할 때 효과적이다. 극좌표가 x 축 방향으로 0에서 증가하고 반 시계 방향으로 이동합니다. – hardmath

+0

솔직히 말하면 맨 위부터 시작해야 할 필요는 없으며 일관성이 있어야합니다. 그래서, 처음으로 왼쪽 상단의 점이 첫 번째 위치가되면 항상 시계 방향 사이클의 첫 번째 위치 여야합니다. 오른쪽 상단이 출발점이지만, 기술적으로 필수는 아닙니다. – Tiago

0

내가 처음 위치가 0이라고 가정하고 어디 그냥

newPosition = (originalPosition 회전 + #) 모드 8

같은 일을 할 것, 내가 제대로 이해를 가정하면, 당신은 할 수 있습니다 물건을 시계 방향으로 정수 단위로 점프하게하십시오. (따라서 회전 수를)

관련 문제