Polygon Grafika Komputer
Polygon adalah bentuk yang disusun dari serangkaian garis. Titik sudut dari polygon disebut vertex. Garis penyusun polygon disebut edge.
Sebuah polygon selalu mempunyai properti dasar : - jumlah vertex - koordinat vertex - data lokasi tiap vertex Polygon digambar dengan menggambar masing-masing edge dengan setiap edge merupakan pasangan dari vertex i – vertex i+1, kecuali untuk edge terakhir merupakan pasangan dari vertex n – vertex 1.
Operasi-operasi Polygon - Menginisialisasi polygon inisialisasi terhadap polygon perlu dilakukan untuk mengatur agar field vertnum berisi 0. - Menyisipkan vertex menyimpan informasi tentang vertex dan menyesuaikan informasi tentang jumlah vertex dengan menambahkan satu ke vertnum. - Menggambar polygon mengunjungi vertex satu per satu dan menggambar edge dengan koordinat (vertex i .x, vertex i .y) – (vertex i+1.x – vertex i+1.y) dari vertex nomor satu sampai vertnum – 1. Khusus untuk edge terakhir mempunyai koordinat (vertex vertnum .x , vertex vertnum .y) – (vertex 1 .x – vertex 1.y). - Mewarnai polygon Mengisi area yang dibatasi oleh edge polygon dengan warna tertentu.
Algoritma menggambar polygon : index = 1 selama index <= jumlah_vertex lakukan vertex1 = ambil vertex ke[index] jika index = jumlah_vertex maka vertex2 = ambil vertex ke [1] tetapi jika tidak maka vertex2 = ambil vertex ke [index+1] x1 = vertex1.x y1 = vertex1.y x2 = vertex2.x y2 = vertex2.y gambar garis dari (x1,y1) ke (x2,y2) index = index + 1 akhir selama index <= jumlah_vertex
Algoritma Flood Fill (Seed Fill) Merupakan algoritma untuk mengisi area di dalam sebuah polygon. Bekerja dengan cara : - Pemakai menentukan warna polygon serta lokasi titik yang menjadi titik awal. - Kemudian algoritma akan memeriksa titik-titik tetangga. - Bila warna titik tetangga tidak sama dengan warna isi polygon maka titik tersebut akan diubah warnanya. - Proses tersebut dilanjutkan sampai seluruh titik yang berada di dalam polygon selesai diproses. - Penentuan titik tetangga dapat menggunakan metode 4 koneksi atau 8 koneksi seperti berikut :
Ketepatan algoritma Flood Fill ditentukan oleh titik awal (seed point) dan apakah polygon yangdiwarnai merupakan polygon tertutup. Apabila polygon tidak tertutup, meskipun hanya 1 titik yangterbuka maka pengisian akan melebar ke area di luar polygon. algoritma floodfill input x,y : integer // lokasi awal input fill : Tcolor // warna isian(baru) input oldcolor : Tcolor // warna lama mulai w = ambil warna pixel pada lokasi (x,y) jika w = oldcolor maka ubah warna pixel pada lokasi (x,y) menjadi berwarna fill; floodfill (x+1, y, fill, oldcolor); floodfill (x-1, y, fill, oldcolor); floodfill (x, y+1, fill, oldcolor); floodfill (x, y-1, fill, oldcolor); akhir algoritma