Mỗi dòng nên chia mặt phẳng thành "bên trong" và "phác thảo"; bạn có thể tìm ra điều này bằng cách sử dụng phương pháp sản phẩm bên trong thông thường.
Di chuyển tất cả các dòng ra bên ngoài bởi một số khoảng cách.
Xem xét tất cả các cặp đường lân cận (đường, không phải đoạn thẳng), tìm giao điểm. Đây là những đỉnh mới.
Dọn dẹp đỉnh mới bằng cách loại bỏ bất kỳ phần giao nhau. - chúng tôi có một vài trường hợp ở đây
(a) Trường hợp 1:
0--7 4--3
| | | |
| 6--5 |
| |
1--------2
nếu bạn chi tiêu nó một, bạn sẽ nhận được điều này:
0----a----3
| | |
| | |
| b |
| |
| |
1---------2
7 và 4 trùng nhau .. nếu bạn thấy điều này, bạn xóa điểm này và tất cả các điểm ở giữa.
(b) trường hợp 2
0--7 4--3
| | | |
| 6--5 |
| |
1--------2
nếu bạn tiêu nó bằng hai, bạn đã nhận được điều này:
0----47----3
| || |
| || |
| || |
| 56 |
| |
| |
| |
1----------2
Để giải quyết vấn đề này, đối với từng phân đoạn của dòng, bạn phải kiểm tra xem nó có trùng với các phân đoạn sau không.
(c) trường hợp 3
4--3
0--X9 | |
| 78 | |
| 6--5 |
| |
1--------2
chi bằng 1. đây là trường hợp tổng quát hơn cho trường hợp 1.
(d) trường hợp 4
giống như case3, nhưng chi bằng hai.
Trên thực tế, nếu bạn có thể xử lý trường hợp 4. Tất cả các trường hợp khác chỉ là trường hợp đặc biệt của nó với một số dòng hoặc đỉnh chồng chéo.
Để thực hiện trường hợp 4, bạn giữ một chồng đỉnh .. bạn đẩy khi bạn tìm thấy các dòng trùng với dòng sau, bật nó khi bạn nhận được dòng sau. - giống như những gì bạn làm trong thân lồi.