.. Algoritma DDA (Digital Diferential Analer ) DDA adalah algoritma pembentuk garis ang didasarkan pada perasamaan (-8). Garis dibuat menggunakan titik awal (, ) dan titik akhir (, ). Setiap koordinat titik ( k, k ) ang membentuk garis diperoleh dari perhitungan, kemudian hasil perhitungan dikonersikan menjadi nilai integer. Algoritma ini bisa digunakan untuk menghitung garis dengan semua kemiringan. { < m < ; m> ; < m < ; m < }. Berikut adalah langkah-langkah pembentukan garis berdasarkan algoritma DDA: ==================. Tentukan dua titik ang akan dihubungkan dalam pembentukan garis.. Tentukan salah satuna sebagai titik awal (, ) dan ang lain sebagai titik akhir (, ).. Hitung : d = dan d = 4. Tentukan step, dengan ketentuan berikut: - bila d > d maka step = d - bila tidak, maka step = d. Hitung penambahan koordinat piksel dengan persamaan: _inc = d / step _inc = d / step 6. Koordinat selanjutna : = + _inc = + _inc 7. Lakukan pembulatan u = Round(), = Round(), kemudian plot piksel (u, ) pada laar 8. Ulangi point 6 dan 7 untuk menentukan posisi piksel berikutna sampai = dan =. Contoh.4 Diketahui buah titik A(,) dan titik B(8,) bila titik A sebagai titik awal dan titik B sebagai titik akhir, maka buatlah garis ang menghubungkan titik tersebut dengan menggunakan algoritma DDA. Jawab: Titik awal (, ) = A(,) dan Titik akhir (, ) = B(8,) d = = 8 = 6 dan d = = = 4 Karena: d > d, maka step = d = 6 _inc = d / step = 6/6 = _inc = d / step = 4/6 =,67 Iterasi ke-: (,) = (,) +_inc = + = +_inc = +,67 =,67 Koordinat selanjutna : (,) = (;,67) Pembulatan (;,67) (,). Gambar titik (,) dilaar
Iterasi ke-: (,) = (;,67) +_inc = + = 4 +_inc =,67 +,67 =,4 Koordinat selanjutna : (,) = (4;,4) Pembulatan (4;,4) (4,). Gambar titik (4,) dilaar Iterasi ke-: (,) = (4;,4) A +_inc = 4 + = A +_inc =,4 +,67=, Koordinat selanjutna : (,) = (;,) Pembulatan (;,) (,). Gambar titik (,) dilaar Iterasi ke-4: (,) = (;,) A +_inc = + = 6 A +_inc =, +,67 =,68 Koordinat selanjutna : (,) = (6;,68) Pembulatan (6;,68) (6,4). Gambar titik (6,4) dilaar Iterasi ke-: (,) = (6;,68) A +_inc = 6 + = 7 A +_inc =,68 +,67 = 4, Koordinat selanjutna : (,) = (7; 4,) Pembulatan (7; 4,) (7,4). Gambar titik (7,4) dilaar Iterasi ke-6: (,) = (7; 4,) A +_inc = 7 + = 8 A +_inc = 4, +,67 =, Koordinat selanjutna : (,) = (8;,) Pembulatan (8;,) (8,). Gambar titik (8,) dilaar Karena = = 8, maka iterasi dihentikan, sehingga diperoleh titik-titik pembentuk garis sebagai berikut: (,), (,), (4,), (,), (6,4), (7,4) dan (8,). Bila digambar pada raster graphics diperoleh gambar.6: 7 6 4 4 6 7 8 9
Gambar.6: Titik-titik pembentuk garis hasil perhitungan menggunakan algoritma DDA digambar pada raster graphics. Kelebihan Algoritma DDA dibanding Algoritma Brute Force Algoritma DDA lebih cepat dibanding dengan algoritma Brute Force dan baik digunakan untuk kemiringan garis m >. Kelemahan Algoritma DDA Prosedur untuk menggambar garis masih menggunakan fungsi pembulatan maupun, sehingga memerlukan waktu. ariabel, maupun m memerlukan bilangan real karena kemiringan merupakan nilai pecahan... Algoritma Bressenham Dengan begini algoritma midpoint Bresenham (untuk kemiringan < m < ) adalah :. Tentukan dua titik ang akan dihubungkan dalam pembentukan garis.. Tentukan salah satu sebagai titik awal (, ) dan titik akhir (, ).. Hitung d, d, d dan d d 4. Hitung parameter : po = d d. Untuk setiap k sepanjang jalur garis, dimulai dengan k = - bila p k < maka titik selanjutna adalah: ( k +, k ) dan p k+ = p k + d - bila tidak, titik selanjutna adalah: ( k +, k +) dan p k+ = p k + d d 6. Ulangi nomor untuk menentukan posisi piksel berikutna, sampai = dan =. Contoh. Diketahui buah titik A(,) dan titik B(8,) bila titik A sebagai titik awal dan titik B sebagai titik akhir, maka buatlah garis ang menghubungkan titik tersebut dengan menggunakan algoritma Bressenham. Jawab: Titik awal (, ) = A(,) dan Titik akhir (, ) = B(8,) d = = 8 = 6 dan d = = = 4 m = d/ d = 4/6 ; kemiringan garis berada diantara dan : < m < d =.6 = ; d =.4 = 8 dan d d = 8 = 4 p o = d d = 8 6 =
Iterasi ke- ( k = ): Titik awal = (,) Po = >, maka titik selanjutna adalah = + = dan = + =, koordinat selanjutna : (,) p = p + d d = 4 = Iterasi ke- ( k = ): Titik awal = (,) P = <, maka titik selanjutna adalah = + = 4 dan =, koordinat selanjutna : (4,) p = p + d = + 8 = 6 Iterasi ke- ( k = ): Titik awal = (4,) P = 6 >, maka titik selanjutna adalah = 4 + = dan = + =, koordinat selanjutna : (,) p = p + d d = 6 4 = Iterasi ke-4 ( k = ): Titik awal = (,) P = >, maka titik selanjutna adalah = + = 6 dan = + = 4, koordinat selanjutna : (6,4) p 4 = p + d d = 4 = Iterasi ke- ( k = 4): Titik awal = (6,4) P = <, maka titik selanjutna adalah = 6 + = 7 dan = 4, koordinat selanjutna : (7,4) p = p 4 + d = + 8 = 6 Iterasi ke-6 ( k = ): Titik awal = (7,4) P = 6 >, maka titik selanjutna adalah = 7 + = 8 dan = 4 + =, koordinat selanjutna : (8,) Karena = = 8, maka iterasi dihentikan, sehingga diperoleh titik-titik penusun garis sebagai berikut: (,), (,), (4,), (,), (6,4), (7,4) dan (8,). Bila digambar pada raster graphics diperoleh Gambar.8:
7 6 4 4 6 7 8 9 Gambar.8: Titik-titik pembentuk garis dengan kemiringan < m <, hasil perhitungan menggunakan algoritma Bressenham ang digambar pada raster graphics..4 Lingkaran.4. Simetris Delapan Titik Pembuatan kura lingkaran dapat dilakukan dengan menentukan titik awal (,) ang terletak pada lingkaran, maka tujuh titik ang lain (ang terletak pada lingkaran juga) dapat ditentukan sebagai berikut : (,), (, ), (, ), (,), (,), (, ), (, ) Sehingga terbentuk delapan titik: (, ), (,), (, ), (, ), (,), (,), (, ), (, ) Dengan demikian sebenarna hana diperlukan untuk menghitung segmen 4 dalam menentukan lingkaran selengkapna..4. Algoritma Midpoint Dari sini diperoleh langkah-langkah algoritma pembentuk lingkaran. Langkah-langkah Algoritma Lingkaran Midpoint adalah:. Tentukan jari-jari r dan pusat lingkaran ( p, p ), kemudian setting sedemikian rupa sehingga titik awal berada pada: (, ) = (, r). Hitung nilai parameter : p r Jika jari-jari r pecahan 4 p r Jika jari-jari r bulat. Untuk setiap posisi k, dimulai dengan k = berlaku ketentuan:
- bila p k < maka titik selanjutna adalah ( k +, k ) dan p k+ = p k + k+ + - bila tidak, titik selanjutna adalah ( k +, k ) dan p k+ = p k + k+ + k+ 4. Tentukan titik simetris pada ketujuh oktan ang lain. Gerakkan setiap posisi piksel (, ) pada garis lingkaran dengan titik pusat ( p, p ) dan plot nilai koordinat : = + p, = + p 6. Ulangi langkah sampai dengan hingga Contoh.9 Buatlah gambar kura lingkaran dengan pusat lingkaran (4,6) dan jari-jari 8, perhitungan berdasarkan dari oktan kuadran pertama dimana = sampai =. Koordinat titik awal dimulai dari (,r) = (,8). Karena jari-jari r bulat, maka gunakan P = r. Iterasi ke-: K = X = Y = r = 8 P = r = 8 = 7 Karena P <, maka : X = X + = + = dan Y = Y = 8, jadi Titik selanjutna : (,8) P = p + + = 7 +.() + = 4 Dengan algoritma simetris delapan titik, maka diperoleh titik-titik berikut : (,8), (,8), (, 8), (, 8), (8,), ( 8,), (8, ), ( 8, ) Gerakkan setiap posisi piksel (, ) pada garis lingkaran dengan titik pusat (4,6) diperoleh titiktitik berikut (, 4), (, 4), (, ), (, ), (, 7), ( 4, 7), (, ), ( 4, ) Iterasi ke-: K = X = Y = 8 P = 4 Karena P <, maka X = X + = + = dan Y = Y = 8, jadi Titik selanjutna : (,8) P = p + + = 4 +.() + = Dengan algoritma simetris delapan titik, maka diperoleh titik-titik berikut : (,8), (,8), (, 8), (, 8), (8,), ( 8,), (8, ), ( 8, ) Gerakkan setiap posisi piksel (, ) pada garis lingkaran dengan titik pusat (4,6) diperoleh titiktitik berikut (6, 4), (, 4), (6, ), (, ), (, 8), ( 4, 8), (, 4), ( 4, 4) Iterasi ke-: K = X = Y = 8 P = Karena P >, maka X = X + = + = dan Y = Y = 8 = 7, jadi Titik selanjutna : (,7) P = p + + = +.() +.(7) = 6 Dengan algoritma simetris delapan titik, maka diperoleh titik-titik berikut : (,7), (,7), (, 7), (, 7), (7,), ( 7,), (7, ), ( 7, )
Gerakkan setiap posisi piksel (, ) pada garis lingkaran dengan titik pusat (4,6) diperoleh titiktitik berikut (7, ), (, ), (7, ), (, ), (, 9), (, 9), (, ), (, ) Iterasi ke-4: K = X = Y = 7 P = 6 Karena P <, maka X 4 = X + = + = 4 dan Y 4 = Y = 7, jadi Titik selanjutna : (4,7) P 4 = p + 4 + = 6 +.(4) + = Dengan algoritma simetris delapan titik, maka diperoleh titik-titik berikut : (4,7), ( 4,7), (4, 7), ( 4, 7), (7,4), ( 7,4), (7, 4), ( 7, 4) Gerakkan setiap posisi piksel (, ) pada garis lingkaran dengan titik pusat (4,6) diperoleh titiktitik berikut (8, ), (, ), (8, ), (, ), (, ), (, ), (, ), (, ) Iterasi ke-: K = 4 X 4 = 4 Y 4 = 7 P 4 = Karena P 4 >, maka X = X 4 + = 4 + = dan Y = Y 4 = 7 = 6, jadi Titik selanjutna : (,6) P = p 4 + 4 + 4 = +.() +.(6) = Dengan algoritma simetris delapan titik, maka diperoleh titik-titik berikut : (,6), (,6), (, 6), (, 6), (6,), ( 6,), (6, ), ( 6, ) Gerakkan setiap posisi piksel (, ) pada garis lingkaran dengan titik pusat (4,6) diperoleh titiktitik berikut (9, ), (, ), (9, ), (, ), (, ), (, ), (, ), (, ) Iterasi ke-6: K = X = Y = 6 P = Karena P >, maka X 6 = X + = + = 6 dan Y 6 = Y = 6 =, jadi Titik selanjutna : (6,) Iterasi dihentikan karena X > Y. Bila digambar, hasil untuk oktan ke- ditunjukkan oleh gambar (.). Gambar.: Posisi piksel pada pembentukan lingkaran dengan titik pusat (,) dan jari-jari 8
Transformasi Geometri Dari persamaan tersebut, maka masing-masing transformasi diatas bisa dituliskan sebagai berikut : Matrik penajian Translasi : T = t t, sehingga = t t Matrik penajian Scalling : S = S S, sehingga = S S Matrik penajian Rotasi: R = cos sin sin cos, sehingga = cos sin sin cos Contoh 4.7 Tentukan posisi dari segitiga ABC ang dibentuk oleh titik-titik A(,), B(,8) dan C(,) jika dilakukan transformasi berikut : a) translasi kearah sumbu = 4, kearah sumbu = b) Scalling dengan skala kearah sumbu =, kearah sumbu = c) Diputar 9 o berlawanan jarum jam Jawab:
a) = 4 8 = 4 4 6 7 diperoleh A (4,), B (4,6) dan C (7,) b) = 8 = 4 6 6 4 diperoleh A (, 4), B (, 6) dan C (6, 4) c) = cos9 sin 9 sin 9 cos9 8 = 8 diperoleh A (, ), B ( 8, ) dan C (, ) 4. Komposisi Matrik Transformasi D Contoh 4.8 Tentukan posisi dari segitiga ABC ang dibentuk oleh titik-titik A(,), B(,) dan C(8,) jika dilakukan komposisi transformasi berikut: penggeseran pada 6, dilanjutkan dengan rotasi 9º 6 berlawanan jarum jam, kemudian diakhiri dengan penskalaan dengan faktor skala terhadap titik pusat P(,). Jawab: Dalam hal ini kita harus menghitung matrik komposisi berikut
S * R * T * Proses dilakukan terhadap operasi translasi terlebih dahulu cos(9) sin(9) 6 8 sin(9) cos(9) 6 48 48 4 Diperoleh titik hasil transformasi : A (, ), B (, 48) dan C ( 48, 4) 4.8 Transformasi Geometri D Transformasi geometri D merupakan pengembangan dari transformasi geometri D. Secara umum representasi transformasi pada D juga dibuat dalam bentuk matrik untuk memudahkan perhitungan. 4.8. Translasi (,, ) (,, ) T (T, T, T )
Dalam hal ini, T T T. Dalam bentuk matrik T T T 4.8. Penskalaan (Scalling) Dalam hal ini, S S S.... Dalam bentuk matrik S S S 4.8. Rotasi Rotasi terhadap sumbu- sebesar sudut Ө. Dalam hal ini, cos sin sin cos (,, ) (,, ) T (S, S, S ) (,, ) (,, )
Dalam bentuk matrik rotasi terhadap sumbu- sebesar sudut Ө. cos sin sin cos Dengan cara ang sama diperoleh rotasi terhadap sumbu- sebesar sudut Ө. cos sin sin cos Dalam bentuk matrik rotasi terhadap sumbu- sebesar sudut Ө. cos sin sin cos rotasi terhadap sumbu- sebesar sudut Ө. cos sin sin cos Dalam bentuk matrik rotasi terhadap sumbu- sebesar sudut Ө. cos sin sin cos
Viewing Dan Clipping D Dalam komputer grafik ada macam sistem koordinat kartesian, aitu Modeling coordinat/ local coordinat World coordinat Viewing coordinat Normalied deice coordinat Deice coordinat Viewing D adalah transformasi sistem pandang dari World Coordinates sstem (sistem koordinat dunia) ke Deice Coordinates Sstem. Gambar - menunjukkan langkah-langkah iewing D. Gambar -: Langkah-langkah iewing D... Viewing Transformation Window merupakan daerah ang dibatasi segi empat pada Viewing Coordinates. Arah pandang Viewing Coordinates tergantung pada arah pandang pengamat. Karena itu untuk melihat bagian obek ang tertangkap pada window tadi diperlukan transformasi koordinat dari World Coordinates ke Viewing Coordinates ang disebut sebagai Viewing Transformation.
P Window Window World Coordinates Viewing Coordinates Gambar -: Transformasi dari World Coordinates ke Viewing Coordinates Perhatikan titik P dan Po ang bertindak sebagai ektor arah pandang atas pengamat (iewer). Koordinat titik asal window adalah : P o = ( o, o ) P ektor arah pandang atas pengamat: P Gunakan untuk memperoleh : u = (,, ) transformasi dari World Coordinates ke Viewer Coordinates Sstem adalah M WC VC u u * Sehingga posisi titik terhadap Viewing Coordinates adalah P P M WC VC * w w P word P M * P (-) iewer WC VC word = posisi titik terhadap World Coordinates (data posisi titik pembentuk permukaan obek ang tersimpan di memori) P iewer = posisi titik terhadap Viewing Coordinates (posisi titik pembentuk bagian permukaan obek ang ada di dalam window) Contoh. Sebuah segitiga T dibentuk oleh titik-titik (,), (4,) dan (4,) terletak pada World Coordinates dilihat oleh seorang pengamat dengan arah pandang atas P-Po, dimana Po(,) dan P(., ).
Arah pandang atas inilah ang dipakai sebagai Viewing Coordinates. Hitunglah koordinatkoordinat segitiga T, terhadap pengamat (Viewing Coordinates). Jawab: P(., ) Po(,) P P P P (.,) (.,) (,) (,) (.,). (.6,.8) u (,,) (.6,.8,) (,,) (.8,.6).8.6.8.6 M WC VC.6.8 *.6.8 T M * T WC VC w.8.6 4 4.8.6 T.6.8 *.6. koordinat-koordinat segitiga T, terhadap pengamat adalah (.8,.6), (,), (.6,.).. Window to Viewport Transformation Window merupakan daerah ang dibatasi segi empat pada World Coordinates sedangkan Viewport adalah bagian dari laar dimana gambar ang ditangkap oleh window pada World Coordinates ditampilkan di Deice Coordinates (dilaar). Jadi window memilih bagian gambar ang akan ditampilkan dilaar, sedangkan iewport menunjukkan dimana posisi bagian gambar tersebut ditampilkan dilaar. Karena itu, untuk medahkan gambar dari window ke iewport diperlukan Window to Viewport Transformation, aitu transformasi dari World Coordinates ke Deice Coordinates.
. Y Wma Window Y Vma Viewport ( w, w ) Viewport (, ) w Y W Y V X W w X Wma Word Coordinates Sstem X V X Vma Deice Coordinates Sstem Gambar -: Transformasi dari window ke iewport Teknik ini diperlukan untuk menjaga proporsionalitas ukuran obek. Gambar - menunjukkan sebuah titik ang terletak di ( w, w ) pada koordinat window ditransformasi ke (, ) pada koordinat iewport dengan persamaan -: w w ma w w ma dan w w ma w w ma (-) Pada umumna ukuran deice coordinates berbeda-beda tergantung dari kemampuan Graphics Card. Berikut adalah contoh beberapa ukuran deice coordinates Standart -maksimal -maksimal Jumlah keseluruhan Piksel VGA 64 48 7 SVGA 8 6 48 XGA 4 768 786 4 SXGA 8 4 8 8 Karena alasan inilah maka ada beberapa sistem grafik ang menggunakan Normalied Coordinates, aitu koordinat di normalisasi kedalam range [, ] seperti Gambar -6.
Window dalam iewing coordinat Normalied Coordinates Gambar -6: Normalisasi koordinat Sehingga, transformasi dari window ke Normalied Coordinates adalah n ( ) ( ) n ( ) ( ) w w w ma w ma w w w w atau n ( w w ) w w ma atau n ( w w ) w w Proses berikutna adalah transformasi dari Normalied Coordinates ke Viewport (Deice Coordinates). ma n ( ) ( ) ma ( ma atau ) ( n ) n ( ) ( ) ma ( ma atau ) ( n ) Contoh. Diketahui sebuah titik terletak di (, ) pada World Coordinates dilihat melalui sebuah window berukuran (, ) (, ). Tentukan posisi titik tersebut pada Deice Coordinates, bila titik
tersebut ditempatkan pada iewport berukuran (, ) (6, 4) seperti pada Gambar -6, (a) tanpa Normalied Coordinates (b) dengan Normalied Coordinates (c) dengan Normalied Coordinates menggunakan standart VGA 64 48 (d) dengan Normalied Coordinates menggunakan standart SVGA 8 6 Jawab: Gambar -6: Sebuah titik terletak di (,) pada World Coordinates Sstem (a) w w ma w w ma w w ma w w ma 6 ( ) ( ) 4 = = (b) Transformasi dari window ke Normalied Coordinates n ( w w ) n ( w w ) w w w w ma n ( ) n [ ( )] ( ) Transformasi dari Normalied Coordinates ke Deice Coordinates (iewport) ( ma ) ( ma ( n ) ) ( n ) ma
(6 ) (4 ) ( ) ( ) (c) standart VGA 64 48 ( ma ) ( ma ( n ) ) ( n ) (64 ) (48 ) ( ) ( ) 4 (d) standart SVGA 8 6 ( ma ) ( ma ( n ) ) ( n ) (8 ) (6 ) ( ) 4 ( ). Clipping D.. Clipping Titik 6 Sebuah sebuah titik (,) terletak didalam window ang diagonal titik-titikna (, ) ( ma, ma ) jika memenuhi sarat berikut : 7 ma dan ma (-6) Contoh. Diketahui sebuah koordinat window mempunai diagonal titik (,7) (,). Diketahui pula titik-titik A(,), B(7,), C(,) dan D(8,), terletak seperti pada Gambar -. Titik-titik ang akan ditampilkan dilaar adalah titik-titik ang berada didalam window, maka titik A(,) dan titik D(8,) harus dilakukan clipping, sedangkan titik B(7,) dan titik C(,) tidak dilakukan clipping. Y ma = Y ma = 7 A(,) D(8,) Window C(,) B (7,) X = X ma =
Gambar -(a): Titik-titik A, B, C, dan D sebelum dilakukan clipping. Y ma = Window C(,) Y = 7 B (7,) X = X ma = Gambar -(b): Setelah diclipping hana titik B dan C saja ang ditampilkan di laar. 7.. Clipping Garis B. Algoritma Clipping Garis Cohen-Sutherland Window di bagi-bagi menjadi wilaah-wilaah ang didasarkan pada urutan kode berikut : T B R L T : Top B : Bottom R : Right L : Left T L T T R L Window R
Titik terletak di dalam window jika jumlah keempat pointcode adalah nol : L + R + T + B = Titik terletak di luar window jika jumlah keempat pointcode lebih besar dari nol. L + R + T + B > Algoritma Kliping Cohen-Sutherland :. Tentukan region code dari setiap ujung garis. Jika kedua ujung garis memiliki regioncode, maka garis berada di dalam window clipping. Gambar garis tersebut.. Jika salah satu ujung garis terletak di dalam window (garis P P ), lakukan clipping dengan cara berikut: tentukan titik potong garis dengan tepi window (misalna titik P), kemudian gambar garis antara ujung garis ang didalam window P dengan titik potong P. 4. Jika kedua ujung garis tidak berada didalam window, lakukan operasi logika AND untuk kedua region code o Jika hasilna tidak, maka buang garis tersebut (inisible) o Jika hasilna (garis EF, garis CD dan garis AB), cari titik potong antara garis dengan sisi-sisi window. Cari dua titik potong ang berada di dalam window (E dan F atau C dan D ), kemudian gambar garis antara kedua titik potong tersebut.. Ulangi langkah untuk garis ang lain. Titik potong garis dengan batas window dihitung menggunakan persamaan berikut: ( batas ) dan m( batas ) (-7) m Contoh.4 Diketahui kedudukan garis-garis pada sebuah window pada gambar -:
Berdasarkan gambar tersebut tentukan : a. Region code dari titik-titik A, B, C, D, E, F, G, H, I, dan J, serta sebutkan berapa kategori ang dapat dibangun berdasakan region code tadi. b. Dengan menggunakan algoritma clipping Cohen-Sutherland, jelaskan bagaimana proses Jawab: clipping dilakukan terhadap garis CD, EF dan GH. B(,9) I(,8) E(,) D(7,8) Window G(, ) A(,4) E J(9,) H G F A) Titik Region code Kategori F(, Titik ) 8 A(,4) H(, isible ) B(,9) isible C(,) inisible D(7,8) isible E(,) inisible F(,-) inisible G(,) inisible H(,-) inisible I(,8) inisible J(9,) inisible Kategori I : Garis AB isible, karena region code kedua ujungna Kategori II : Kategori III : C(,) C Garis I J inisible karena, region code I =, J = dan AND = Garis CD candidates for clipping, karena AND =
Garis EF candidates for clipping, karena AND = Garis GH candidates for clipping, karena AND = B) Proses Clipping Clipping garis CD Garis CD melewati titik C (,) region code (atas window) dan tittik D(7,8) region code (dalam window). Gradien garis CD : m 8 7 Titik potong C antara garis CD dengan batas atas window ma = adalah ( ) batas m /,67 Titik potong C (,67, ) region code = Clipp garis CC dan gambar garis C D, karena garis C D region code kedua ujungna Clipping garis EF Garis EF melewati titik E (, ) region code (kiri window) dan titik F(, ) region code (bawah window). Gradien garis EF m Titik potong E antara garis EF dengan batas kiri window = adalah,6 m( ) 6 ( batas ) Titik potong E (,,6) region code = Titik potong F antara garis EF dengan batas bawah window = adalah 6
8 ( batas ) m /,67 Titik potong F (,67, ) region code = Clipp garis EE dan garis FF karena keduana inisible, kemudian gambar garis E F, karena region code kedua ujungna Clipping garis GH Garis GH melewati titik G (, ) region code (kiri window) dan H(, ) region code (bawah window) m 4 Titik potong G antara garis GH dengan batas kiri window = adalah, m( ) 4 ( batas ) Titik potong G (,,) region code = Titik potong H antara garis GH dengan batas bawah window = adalah, ( ) batas m 4 / Titik potong H (,, ) region code = karena region code kedua titik potongna, maka garis G H inisible. Hasil Clipping
E A(,4) F C B(,9) D(7,8) Window 8 7.. Clipping Polgon : Algoritma Sutherland-Hodgman Algoritma Sutherland-Hodgman melakukan clipping polgon terhadap tiap-tiap sisi window. Input algoritma ini adalah sebuah polgon ang terdiri dari urut-urutan erteks (titik-titik ang membentuk polgon) berikut :,,,... n, dan outputna adalah kumpulan erteks pembentuk polgon ang dihasilkan dari aturan clipping polgon.