220 likes | 589 Views
Clipping Line Menggunakan Algoritma Cohen-Sutherland. Contoh Real. Clipping Line Menggunakan Algoritma Cohen-Sutherland. Algoritma Cohen-Sutherland merupakan metode untuk menentukan apakah sebuah garis perlu dipotong atau tidak dan memetukan titik potong garis .
E N D
Clipping Line MenggunakanAlgoritma Cohen-Sutherland Contoh Real
Clipping Line MenggunakanAlgoritma Cohen-Sutherland • AlgoritmaCohen-Sutherland merupakanmetodeuntukmenentukanapakahsebuahgarisperludipotongatautidakdanmemetukantitikpotonggaris. • Area gambardidefinisikansebagaisebuah area segiempat yang dibatasiolehxmindanxmax, ymindanymax. • Setiapujunggarisdiberikode 4 bit dandisebutsebagai region code. Region code ditentukanberdasarkan area dimanaujunggaristersebutberada
Contoh KeteranganGambar : Xmax = 6 Xmin = -6 Ymax = 6 Ymin = -6 1. Garis AB (1,2)(4,4) 3. Garis EF (4,-8)(9,-4) 2. Garis CD (-5,3)(-1,7) 4. Garis GH (-7,-4)(-2,-7)
Region Code AB 1. Garis AB Verteks A (1,2) L = 0 → Karena X > Xminyaitu 1 > -6 R = 0 → Karena X < Xmaxyaitu 1 < 6 B = 0 → Karena Y > Yminyaitu 2 > -6 T = 0 → Karena Y < Ymaxyaitu 2 < 6 Sehingga region code dariverteks A adalah 0000 Verteks B (4,4) L = 0 → Karena X > Xminyaitu 4 > -6 R = 0 → Karena X < Xmaxyaitu 4 < 6 B = 0 → Karena Y > Yminyaitu 4 > -6 T = 0 → Karena Y < Ymaxyaitu 4 < 6 Sehingga region code dariverteks B adalah 0000
Kesimpulan • Karena region code darikeduaverteks A dan B adalah 0000 makagaris AB bersifatFully Visible (Garis yang terlihatseluruhnya) sehinggagaristidakperludipotong. Denganmelakukanoperasi AND jugadapatdibuktikanbahwakeduaverteksterletakdalam viewport danakanditampilkanseluruhnya (0000 AND 0000 = 0000).
Region Code CD • 2. Garis CD • Verteks C (-5,3) • L = 0 → Karena X > Xminyaitu -5 > -6 • R = 0 → Karena X < Xmaxyaitu -5 < 6 • B = 0 → Karena Y > Yminyaitu 3 > -6 • T = 0 → Karena Y < Ymaxyaitu 3 < 6 • Sehingga region code dariverteks C adalah 0000 • Verteks D (-1,7) • L = 0 → Karena X > Xminyaitu -1 > -6 • R = 0 → Karena X < Xmaxyaitu -1 < 6 • B = 0 → Karena Y > Yminyaitu 7 > -6 • T = 1 → Karena Y < Ymaxyaitu 7 > 6 • Sehingga region code dariverteks D adalah 1000
Kesimpulan Karenaadasalahsatuverteksdarigaris CD yang region codenyatidak 0000 (yaituverteks D), makagaris CD kemungkinanbersifatPartially Visible (Garis yang hanyaterlihatsebagian) danperludipotong. Samasepertigaris AB, garis CD pun dapatdibuktikandenganoperasi AND, yaitu 0000 AND 1000 = 0000.
MenetukanTitikPotong • Titikpotongdihitungberdasarkan bit=1 dari region code denganmenggunakanpanduantabelberikut:
Dengan xp1, xp2, yp1, dan yp2 dihitungmenggunakanpersamaanberikutini: • Titikpotongpadagaris CD (-5,3)(-1,7) Region code 1000 untukverteks D(-1,7) • T = 1 → Karena T=1, maka yang dicariadalah xp2. • Makatitikpotongnyaadalah (xp2, ymax) → (2, 6)
Region Code EF • 3. Garis EF • Verteks E (4,-8) • L = 0 → Karena X > Xminyaitu 4 > -6 • R = 0 → Karena X < Xmaxyaitu 4 < 6 • B = 1 → Karena Y < Yminyaitu -8 < -6 • T = 0 → Karena Y < Ymaxyaitu -8 < 6 • Sehingga region code dariverteks E adalah 0100 • Verteks F (9,-4) • L = 0 → Karena X > Xminyaitu 9 > -6 • R = 1 → Karena X < Xmaxyaitu 9 > 6 • B = 0 → Karena Y > Yminyaitu -4 > -6 • T = 0 → Karena Y < Ymaxyaitu -4 < 6 • Sehingga region code dariverteks F adalah 0010
Kesimpulan • Karena region code darikeduavertekstidak 0000 , makagaris CD bersifatFully Invisible(Garis yang tidakterlihatsamasekali), jadigaristidakperludigambar. Hal inijugadapatdibuktikandengan à 0100 AND 0110 = 0100
Region Code GH 4. Garis GH Verteks G (-7,-4) L = 1 → Karena X < Xminyaitu -7 < -6 R = 0 → Karena X < Xmaxyaitu -7 < 6 B = 0 → Karena Y > Yminyaitu -4 > -6 T = 0 → Karena Y < Ymaxyaitu -4 < 6 Sehingga region code dariverteks G adalah 0001 Verteks H (-2,-7) L = 0 → Karena X Xminyaitu -2 > -6 R = 0 → Karena X Xmaxyaitu -2 < 6 B = 1 → Karena Y Yminyaitu -7 < -6 T = 0 → Karena Y Ymaxyaitu -7 < 6 Sehingga region code dariverteks A adalah 0100
Kesimpulan • Keduaverteksdarigaris GH tidakmempunyai region code 0000. Tetapijikakeduaverteksdilakukanoperasi AND, makaakanmenghasilkan region code 0000. (0001 AND 0100 = 0000)
- Titikpotongpadagaris GH (-7,-4)(-2,-7) - Region code 0001 untukverteks G(-7,-4) L = 1 → Karena L=1, maka yang dicariadalah yp1. Makatitikpotongnyaadalah (xmin, yp1) → (-6, -4.6) - Region code 0100 untukverteks H(-2,-7) B = 1 → Karena B=1, maka yang dicariadalah xp1. Makatitikpotongnyaadalah (xp1, ymin) → (-3.67, -6) » Ada 2 titikpotongpadagaris GH yaitu (-6, -4.6) dan (-3.67, -6)