Anda di halaman 1dari 5

Polygon

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

Anda mungkin juga menyukai