0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
30 tayangan5 halaman
Polygon adalah bentuk yang terdiri dari serangkaian garis yang saling berhubungan. Polygon memiliki sifat dasar seperti jumlah titik sudut dan koordinat titik sudut. Polygon digambar dengan menghubungkan masing-masing pasangan titik sudut dengan garis. Terdapat beberapa operasi pada polygon seperti menggambar, mewarnai, dan mengisi area polygon menggunakan algoritma flood fill.
Polygon adalah bentuk yang terdiri dari serangkaian garis yang saling berhubungan. Polygon memiliki sifat dasar seperti jumlah titik sudut dan koordinat titik sudut. Polygon digambar dengan menghubungkan masing-masing pasangan titik sudut dengan garis. Terdapat beberapa operasi pada polygon seperti menggambar, mewarnai, dan mengisi area polygon menggunakan algoritma flood fill.
Polygon adalah bentuk yang terdiri dari serangkaian garis yang saling berhubungan. Polygon memiliki sifat dasar seperti jumlah titik sudut dan koordinat titik sudut. Polygon digambar dengan menghubungkan masing-masing pasangan titik sudut dengan garis. Terdapat beberapa operasi pada polygon seperti menggambar, mewarnai, dan mengisi area polygon menggunakan algoritma flood fill.
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 ti ap 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 pada polygon : Menginisialisasi pol ygon : 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 = ju mlah_vertex maka vertex2 = ambil vertex ke [1] Gambar 7.1. Titik dan garis pada Poligon Diktat Kuliah Grafik Komputer Program Studi S1 Informa tika STMIK Bumigora 96 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 a khir selama index <= jumlah_vertex 7.2. 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 te tangga dapat menggunakan metode 4 koneksi atau 8 koneksi seperti berikut : Ketepatan algoritma Flood Fill ditentukan oleh titik awal (seed point) dan apakah polygon yang diwarnai merupakan polygon tertutup. Apabila polygon tidak tertutup, meskipun ha nya 1 titik yang terbuka 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, oldc olor); akhir algoritma Gambar 7.2. Metode koneksi piksel Diktat Kuliah Grafik Komputer Program Studi S1 Informa tika STMIK Bumigora 9 7 7.3. Primitif Grafika Poligon Poligon adalah sederetan garis lurus (polyline) yang sambung - menyambung secara siklik sehingga melingkupi suatu area. Garis - garis tersebut kita sebut garis tepi (edge). Titik pertemuan setiap pasang sisi kita sebut verteks. Dalam representasinya biasanya suatu poligon dinyatakan dengan koordinat verteks - verteks ini dan penggambaran tepi - tepi poligon dilakukan dengan penggambaran setiap garis antara dua verteks bertuturan dengan algoritma yang sudah di bahas. Untuk kasus di mana piksel - piksel di dalam area poligon perlu di - "warna" - i maka kita perlu mengenal algoritma pengisian poligon berikut ini. Ide dasar Apa bila kita menge t ahui adanya suatu piksel yang berada dalam area poligon maka piksel - piksel lai n dapat dengan mudah dicapai dari piksel ini dengan suatu algoritma rekursif. Namun secara umum hal itu tidak selalu bisa terjadi. Algoritma Scanline memecahkan masalah ini dengan melakukan Scan secara horisontal dari kiri ke kanan: mendapatkan titik - titik perpotongan dengan tepi - tepi poligon, mengurutkannya dari kiri ke kanan (menurut harga absis) kemudian memberi warna piksel - piksel di antara dua pasang urutan ganjil - genal titik potong tsb. Hal tersebut dilakukan berulang dari yang paling bawah (harga ord inat verteks terkecil) ke yang paling atas (harga ordinat verteks terbesar). Kerangka Algoritma mencari ordinat tekecil dan terbesar dalam ymin dan ymax // inisialisasi mencari ymin dan ymax ... for (yi = ymin; yi <= ymax; yi++) { //mencari titik poton g ... //mengurutkan horisontal dari kiri ke kanan p1, p2, ... , pn ... //untuk setiap pasang pi & pi+1 (i=ganjil) plot di antaranya ... } 7.3.1. Masalah Garis Tepi Horisontal Dalam algoritma ini jika suatu garis tepi diketahui horisontal (kedua ordinatnya s ama) maka garis ini bisa diabaikan. Gambar 7.3. Scan Horisontal poligon