단순한 (구멍이없고 자기 교차점이없는) 다각형 집합이 있고 서로 교차하지 않는지 확인해야합니다 (하나는 완전히 다른 것으로 포함될 수 있지만 괜찮습니다).). 하나의 폴리곤 대 다른 폴리곤의 정점 당 체크 만하면됩니다.다각형 교차점과 봉쇄 판별
또한 어떤 폴리곤에 주어진 다각형이 포함되어 있는지를 나타내는 관계 집합 인 포함 트리를 결정해야합니다. 다각형이 다른 어떤 것도 교차 할 수 없기 때문에 포함 된 다각형에는 고유 한 컨테이너가 있습니다. "다음 큰"것. 즉, A에 B가 C를 포함하고 A가 B의 부모이고 B가 C의 부모라면 A가 C의 부모라고 생각하지 않습니다.
질문 : 어떻게 효율적으로 봉쇄 관계를 결정하고 비 교차 기준을 확인 하는가? 아마도 하나의 질문으로 생각해 봅니다. 아마도 결합 된 알고리즘이 각 문제를 개별적으로 해결하는 것보다 효율적이기 때문입니다. 알고리즘은 꼭지점 목록에 의해 주어진 다각형 목록을 입력으로 받아 들여야합니다. 폴리곤이 다른 폴리곤과 교차하지 않는 경우 및 B = true 인 경우 폴리곤 P가 자식 C의 부모 인 쌍 (P, C) 목록을 나타내는 부울 B를 생성해야합니다.
이것은 아닙니다. 숙제. 이것은 내가하고있는 취미 프로젝트를위한 것입니다.
크기 1, ..., 5의 폴리곤이 있고 1이 내부 5이고 내부 2가 4 인 경우를 가정 해 봅시다. 그러면 3은 목록에서 2 다음에 오지만 반드시 포함 할 필요는 없습니다. –
그렇지만 포함 트리에있는 폴리곤의 부모는 목록의 첫 번째 * 다각형을 포함합니다. 3은 2를 포함하지 않으므로 트리는 관련이 없습니다. 그러나 5에 하나가 포함되어 있더라도 트리에 직접 연결되어 있지 않으며 대신 1의 부모 인 3의 부모입니다. –