각 선은 평면을 "내부"및 "개요"로 분할해야합니다. 일반적인 내부 제품 방법을 사용하여 찾을 수 있습니다.
모든 선을 일정 거리만큼 바깥쪽으로 이동하십시오.
모든 인접 선 쌍 (선 세그먼트가 아닌 선)을 고려하고 교차점을 찾으십시오. 이들은 새로운 정점입니다.
교차하는 부분을 제거하여 새 정점을 정리하십시오. -여기 몇 가지 사례가 있습니다
(a) 사례 1 :
0--7 4--3
| | | |
| 6--5 |
| |
1--------2
하나만 소비하면 다음과 같은 결과를 얻습니다.
0----a----3
| | |
| | |
| b |
| |
| |
1---------2
7과 4가 겹칩니다.이 경우이 점과 그 사이의 모든 점이 제거됩니다.
(b) 사례 2
0--7 4--3
| | | |
| 6--5 |
| |
1--------2
두 개를 소비하면 다음과 같은 결과를 얻습니다.
0----47----3
| || |
| || |
| || |
| 56 |
| |
| |
| |
1----------2
이 문제를 해결하려면 각 선분에 대해 후자의 선분과 겹치는 지 확인해야합니다.
(c) 사례 3
4--3
0--X9 | |
| 78 | |
| 6--5 |
| |
1--------2
이것은 1로 소비됩니다. 이것은 사례 1의 경우보다 일반적인 경우입니다.
(d) 사례 4
case3과 동일하지만 2만큼 소비됩니다.
실제로 사례 4를 처리 할 수있는 경우 다른 모든 사례는 선이나 정점이 겹치는 특수한 경우입니다.
경우 4를 수행하기 위해 정점 스택을 유지합니다. 후행과 겹치는 선을 찾을 때 푸시하고 후자의 선을 가져올 때 팝합니다. -볼록 껍질에서하는 것과 같습니다.