Setiap garis harus membagi bidang menjadi "bagian dalam" dan "garis besar"; Anda dapat menemukan ini menggunakan metode produk dalam biasa.
Pindahkan semua garis keluar dengan jarak tertentu.
Pertimbangkan semua pasangan garis tetangga (garis, bukan segmen garis), temukan persimpangan. Ini adalah simpul baru.
Bersihkan verteks baru dengan menghapus bagian berpotongan. - Kami punya beberapa kasus di sini
(a) Kasus 1:
0--7 4--3
| | | |
| 6--5 |
| |
1--------2
jika Anda mengeluarkannya satu per satu, Anda dapat:
0----a----3
| | |
| | |
| b |
| |
| |
1---------2
7 dan 4 tumpang tindih .. jika Anda melihat ini, Anda menghapus titik ini dan semua titik di antaranya.
(B) kasus 2
0--7 4--3
| | | |
| 6--5 |
| |
1--------2
jika Anda menghabiskannya dengan dua, Anda mendapatkan ini:
0----47----3
| || |
| || |
| || |
| 56 |
| |
| |
| |
1----------2
untuk menyelesaikan ini, untuk setiap segmen garis, Anda harus memeriksa apakah tumpang tindih dengan segmen yang terakhir.
(c) kasus 3
4--3
0--X9 | |
| 78 | |
| 6--5 |
| |
1--------2
pengeluaran oleh 1. ini adalah kasus yang lebih umum untuk kasus 1.
(d) kasus 4
sama seperti case3, tetapi menghabiskan dua.
Sebenarnya, jika Anda dapat menangani case 4. Semua case lainnya hanya case khusus dengan beberapa garis atau vertex yang tumpang tindih.
Untuk melakukan kasus 4, Anda menyimpan setumpuk titik .. Anda mendorong ketika Anda menemukan garis tumpang tindih dengan baris terakhir, pop ketika Anda mendapatkan baris terakhir. - Persis seperti apa yang Anda lakukan di cembung.