Apa itu poligon yang mengalami degenerasi? Bagaimana seseorang memeriksa apakah sepasang poligon yang diberikan mengalami degenerasi atau tidak?
Apa itu poligon yang mengalami degenerasi? Bagaimana seseorang memeriksa apakah sepasang poligon yang diberikan mengalami degenerasi atau tidak?
Jawaban:
Sebuah poligon mengalami degenerasi jika beberapa simpulnya terletak pada satu sama lain. misalnya segitiga (0,0), (0,1), (0,0) berdegenerasi. Ini memiliki 3 sisi, dan 3 simpul, tetapi dua simpul diulang. Dimungkinkan untuk mengulangi verteks beberapa kali (misalnya (0,0), (0,0), (0,0) adalah segitiga degenerasi lain). Menurut definisi, memeriksa apakah poligon berdegenerasi atau tidak mudah.
Tetapi apa kegunaan dari poligon yang merosot? Salah satu aplikasi dari percepatan grafis (gambar 3D) adalah sebagai berikut:
Dalam menggambar 3D, GPU biasanya menggunakan triangulasi untuk membuat gambar. Alasan (sederhana) untuk menggunakan segitiga adalah karena mereka adalah objek 2D yang paling sederhana sehingga tidak memerlukan banyak perangkat keras.
Jika kita ingin menggambar gambar 3D yang kompleks, dengan batasan GPU ini, kita harus menguraikannya menjadi beberapa segitiga. Tetapi jika kita memanggil GPU untuk membuat setiap segitiga secara terpisah, itu akan sangat lambat (karena jumlah panggilan). Jadi strip segitiga digunakan untuk mengurangi jumlah panggilan ke GPU. Penjelasan yang baik tentang strip segitiga dapat ditemukan di Microsoft Documentation: Triangle Strips , Anda juga dapat melihat wiki untuk: Triangle Strip .
Tetapi masalah muncul ketika kita ingin menggambar dua objek terpisah dalam satu strip. Dalam hal ini, segitiga yang merosot membantu. GPU dapat mendeteksi segitiga yang merosot dan melewatkan gambar mereka. Jadi kita dapat menghubungkan dua strip terpisah dengan satu segitiga degenerasi.
Poligon yang merosot adalah poligon yang tidak memiliki luas nol.
Seperti yang telah dicatat orang lain, itu tergantung. Secara umum, poligon adalah non-merosot jika tidak memiliki poin anomali, tetapi ini hanya mendorong masalah mundur satu langkah; apa itu "anomali"?
Jawaban sebenarnya adalah bahwa sebuah poligon mengalami degenerasi jika melanggar spesifikasi. Jawaban yang sedikit kasar adalah bahwa poligon mengalami degenerasi jika merupakan kasus tepi yang tidak dapat ditangani oleh algoritma Anda.
Berikut ini contoh dari dunia SIG. The OGC Simple Fitur Spesifikasi memiliki definisi yang sangat berhati-hati tentang apa yang membuat poligon "valid". Mengutip dari Bagian 6.1.11.1:
Pernyataan untuk Poligon (aturan yang menentukan Poligon yang valid) adalah sebagai berikut:
a) Poligon tertutup secara topologi;
b) Batas Poligon terdiri dari seperangkat LinearRings yang membentuk batas eksterior dan interiornya;
c) Tidak ada dua Cincin di salib batas dan Cincin di batas Poligon dapat berpotongan di suatu Titik tetapi hanya sebagai garis singgung, misalnya
Catatan: Kondisi terakhir ini mengatakan bahwa pada titik yang sama dengan kedua kurva, titik terdekat tidak bisa umum. Ini memaksa setiap titik umum untuk menjadi titik singgung.
e) Bagian dalam setiap Polygon adalah set titik terhubung;
f) Bagian luar Poligon dengan 1 lubang atau lebih tidak terhubung. Setiap lubang mendefinisikan komponen yang terhubung dari eksterior.
Dalam pernyataan di atas, interior, penutup dan eksterior memiliki definisi topologi standar. Kombinasi (a) dan (c) membuat Polygon menjadi set point reguler yang tertutup.