2013-10-30 6 views
1

다각형 및 공간 표현의 초보자입니다. 닫힌 다각형을 나타내는, 나는 C# 프로젝트에서 일하고 있어요시계 방향으로 다각형 정점 목록 정렬

, 나는 (위도/경도에 의해 정의 된) 정점의 목록을 가지고 :

이 내가 가진 것입니다. 다각형은 볼록하거나 오목 할 수 있으며 "구멍"을 가질 수 없습니다. 이 꼭짓점은 인접하지만 시계 방향 또는 반 시계 방향 일 수 있습니다.

이것은 내가 원하는 무엇인가 :

나는이 목록은 시계 방향 또는 반 시계 방향 인 경우, 결정하는 방법을 알고 그들이 시계 방향이었다하기 위해 정점을 정렬하고 싶습니다. 정렬 알고리즘을 직접 수행 할 수는 있지만 주어진 정점 목록을 CW 또는 CCW로 결정하는 방법을 알지 못합니다.

+2

점들은 객관적으로 시계 또는 반 시계 방향으로 배치되지 않습니다. 각도 (점 사이)는 시계 또는 시계 반대 방향으로 계산할 수 있습니다. 예를 들어, 두 점 사이의 각도는 90 또는 270 일 수 있습니다. 하나 또는 다른 값 (CW 또는 CCW)을 갖는 것은 변경 불가능한 현실 (CCW 또는 CCW 여야 함)이 아니라 현재 계산 시스템에 따라 다릅니다. – varocarbas

+2

http://stackoverflow.com/questions/1165647/how-to-determine-if-a-list-of-polygon-points-are-in-clockwise-order –

+0

@MatthewWatson 내가 잘못 이해했는지 확실하지 않습니다. 문제; 그러나 두 지점이 CW인지 CCW인지 알 수있는 방법이 없습니다. 다른 점 (이 링크가 말하는 것)은 점의 집합을 갖고 있으며, 모두가 유사 콘텐츠 (CW 또는 CCW)에 대한 동일한 규칙을 따르고 있으며 어떤 옵션이 속하는 지 알아야합니다. – varocarbas

답변

2

가 여기에 솔루션입니다 : 오목 다각형에도 https://en.wikipedia.org/wiki/Curve_orientation#Orientation_of_a_simple_polygon

작품은 "실제 고려 사항"절에서 지적했듯이 (기본적으로 시험의 중간 지점은 맨 위 가장 왼쪽 포인트가 될 필요가있다).

+0

누가 투표를했는지 모르지만 주어진 링크가 안정적으로 보입니다 ... 나는 시험하고 돌아올 것입니다. – user2687153

+0

동료가 방금 구현했으며 작동하는 것 같습니다. – PMF

+1

@ user2687153 downvote는 아마도 링크 전용 답변이 최고 품질이 아니라는 사실과 관련이 있습니다. 링크 된 페이지가 삭제되거나 변경되면이 대답은 쓸모 없게됩니다. – Hooked