Window /jendela area koordinat yg digunakan untuk menampilkan gambar Viewport area koordinat dimana suatu window dimapping
Viewport diterapkan menggunakan prinsip tranformasi dan clipping pada layar NDC(normalized device coordinat)
Clipping adalah pendefinisian gambar didalam maupun diluar suatu bidang tertentu Clipping dapat dilakukan pada world coordinate sehingga hanya isi yang berada dalam window yang dipetakan ke device coordinat atau world coordinate yang dipetakan ke device coordinat Beberapa metode clipping Clipping titik Clipping garis Clipping karakter
Pemotongan titik dilakukan untuk mengetahui apakah suatu titik terdapat didalam atau diluar jendela,apabila terletak didalam jendela berarti titik tersebut akan nampak dilayar dan sebaliknya
Pada clip window yang berbentuk segi empat, titik x,y) akan ditampil kan bila xwmin <= x <=xwmax ywmin <= y <=ywmax
dimana batas clip window(xwmin,xwmax,ywmin,ywmax) dapat berada di dalam batas world coordinate atau viewport coordinate. Bila salah satu tidak terpenuhi maka titik tersebut tidak akan diclip.
Clipping garis dapat dilakukan dengan menguji tiap titik pixel yang membentuk garis,hanya cara ini kurang efisien Untuk mengatasi hal tersebut dapat digunakan algoritma CohenSutherland Algoritma cohen sutherland membagi garis dalam 3 kategori: Garis nampak (visible),apabila kedua titik ujung garis berada dalam jendela/viewport Garis tidak nampak (not visible),apabila garis terletak di luar jendela,garis yang berujung pada titik (x1,y1) dan (x2,y2) akan terletak diluar jendela jika salah satu dari pertidaksamaan berikut dipenuhi X1,X2>Xmax Y1,Y2>Ymax X1,X2<Xmin Y1,Y2
p3
p4
p8 p8
p2 p6
p6
p10
p10 p7
p5
p5
p7
p9
p9 p1
Sebelum Diclip
Garis tidak tampak (p1p2,p3p4) Garis tampak (p5p6) Garis clip candidate (p7p8,p9p10)
Sesudah Diclip
1001
1000
1010
Garis tampak kedua ujung bernilai 0000
0001
0000
0010
Garis kandidat klip operasi AND dari kedua ujung sama dengan 0000
0101
0100
0110
Garis tidak tampak operasi AND dari kedua ujung titik tidak sama dengan 0000
Bit pertama menunjukkan bahwa titik terletak diatas jendela Bit kedua menunjukkan bahwa titik terletak dibawah jendela Bit ketiga menunjukkan bahwa titik terletak dikanan jendela Bit keempat menunjukkan bahwa titik terletak dikiri jendela
Polygon clipping dapat dilakukan dengan menggunakan line clipping
Polygon yg diproses dengan clipping garis
Polygon yg diproses dengan clipping polygon
Algoritma Sutherland-Hodgeman
Algoritma ini membandingkan setiap sisi dari polygon dengan setiap sisi dari jendela untuk memperoleh clipping yang sesuai Aturan dalam algoritma sutherland-hodegman: 1. jika koordinat sudut pertama polygon berada diluar jendela dan koord. Sudut kedua didalam jendela maka kedua titik perpotongan antara jendela dan koord kedua disimpan dalam koord output 2. jika kedua input koord sudut berada didalam jendela maka hanya koord sudut kedua yg disimpan dalam koord output 3. jika koordinat sudut pertama polygon berada didalam jendela dan koord. Sudut kedua diluar maka hanya titik perpotongan koord jendela yang disimpan 4. jika kedua koord sudut berada diluar jendela, maka tidak ada yang disimpan dalam koord output
Algoritma Weiler-Atherton algoritma ini menggunakan pasangan titik polygon yang diproses disepanjang sisi window, jalur yang digunakan tergantung dari arah penggambaran polygon dan keadaan dari pasangan titik apakah pasangan dari luar kedalam atau dari dalam keluar
Untuk polygon yg diproses searah jarum jam, ketentuannya 1. Untuk pasangan koordinat dari luar ke dalam ikuti sisi polygon 2. Untuk pasangan koordinat dari dalam ke luar ikuti sisi window
Polygon yang diproses (a) dan hasil clipping menggunakan algoritma weiler-atherton
Ada beberapa metode untuk melakukan clipping karakter,salah satunya metode “all or none string clipping” Dalam metode ini, string yang berada dalam jendela disimpan, selain itu diabaikan, metode ini diimplementasi menurut segiempat yang mengelilingi sebuah string
Metode lain yang dapat digunakan adalah metode “all or none character clipping” Dalam metode ini,hanya karakter yang tidak sepenuhnya masuk di jendela diabaikan, metode ini diimplementasikan dengan memeriksa sisi karakter dengan sisi jendela, apabila titik yg membentuk sudut karakter bersinggungan dengan sisi jendela maka karakter tersebut diabaikan