불행히도 나는 혼자서 성공하지 못했습니다.
사각형 세트가 있습니다 그리고 직사각형 . 평면 스위핑 알고리즘을 사용하여 완전히 세트에 의해 덮여있다 .
스윕 라인 알고리즘의 원리에 대한 자세한 내용은 여기를 참조 하십시오 .
처음부터 시작합시다. 처음에는 스윕 라인 알고리즘을 두 개의 데이터 구조가 필요한 라인 세그먼트 교차점 을 찾기위한 알고리즘으로 알고 있습니다 .
- 세트 이벤트 포인트 (세그먼트 및 교차점의 엔드 포인트를 저장함)
- 상태 (스위프 라인이 교차하는 세그먼트 세트에 대한 동적 구조)
일반적인 아이디어 : 스윕 라인을 가정왼쪽에서 사각형 세트에 접근하기 시작하는 수직선입니다. 모두 정렬 사각형의 좌표를 저장하고 오름차순-걸릴 . 첫 번째 이벤트 지점부터 시작하여 모든 지점에 대해 주어진 사각형 세트를 결정하십시오. 좌표, 교차 사각형의 연속 세그먼트를 식별하고 그들이 커버하는지 확인 완전히 현재 동등 어구. 와 이진 트리로 . 의 경우 발견되지 않은 채 완전히 커버되지 않았습니다.
세부 사항 : 세그먼트 교차 알고리즘의 아이디어는 인접한 세그먼트 만 교차한다는 것이 었습니다. 이 사실을 바탕으로 우리는 지위를 구축했습니다.알고리즘 전체에 걸쳐 유지했습니다. 이 경우 비슷한 아이디어를 찾으려고 노력했지만 지금까지 성공하지 못했습니다. 단일 두 사각형이 해당하는 경우 교차합니다. 과 좌표가 겹칩니다.
문제는 구축하고 유지하는 방법입니다 구축 및 유지 관리의 복잡성 입니다. 이 경우 R 트리 가 매우 유용 할 수 있다고 생각하지만 R 트리 를 사용하여 최소 경계 사각형을 결정하는 것은 매우 어렵습니다.
이 문제를 해결하는 방법, 특히 빌드하는 방법에 대한 아이디어가 있습니까? ?