![Page 1: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/1.jpg)
Clipping Line Menggunakan Algoritma Cohen-Sutherland
Contoh Real
![Page 2: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/2.jpg)
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.
• Area gambar didefinisikan sebagai sebuah area segiempat yang dibatasi oleh xmin dan xmax, ymin dan ymax.
• Setiap ujung garis diberi kode 4 bit dan disebut sebagai region code. Region code ditentukan berdasarkan area dimana ujung garis tersebut berada
![Page 3: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/3.jpg)
Susunan Region CodeBit ke Region Bit Isi
0 L 1 apabila x < xmin0 apabila x ≥ xmin
1 R 1 apabila x > xmax0 apabila x ≤ xmax
2 B 1 apabila y < ymin0 apabila y ≥ ymin
3 T 1 apabila y > ymax0 apabila y ≤ ymax
![Page 4: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/4.jpg)
Arti region codeRegion Code Arti
0000 Terletak di dalam viewport0001 Terletak di sebelah kiri viewport0010 Terletak di sebelah kanan viewport
0100 Terletak di sebelah bawah viewport
0101 Terletak di sebelah kiri bawah viewport
0110 Terletak di sebelah kanan bawah viewport
1000 Terletak di sebelah atas viewport1001 Terletak di sebelah kiri atas viewport
1010 Terletak di sebelah kanan atas viewport&
![Page 5: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/5.jpg)
ContohKeterangan Gambar :
Xmax = 6Xmin = -6Ymax = 6Ymin = -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)
![Page 6: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/6.jpg)
Region Code AB1. Garis ABVerteks A (1,2)L = 0 → Karena X > Xmin yaitu 1 > -6R = 0 → Karena X < Xmax yaitu 1 < 6B = 0 → Karena Y > Ymin yaitu 2 > -6T = 0 → Karena Y < Ymax yaitu 2 < 6Sehingga region code dari verteks A adalah 0000Verteks B (4,4)L = 0 → Karena X > Xmin yaitu 4 > -6R = 0 → Karena X < Xmax yaitu 4 < 6B = 0 → Karena Y > Ymin yaitu 4 > -6T = 0 → Karena Y < Ymax yaitu 4 < 6Sehingga region code dari verteks B adalah 0000
![Page 7: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/7.jpg)
Kesimpulan
• Karena region code dari kedua verteks A dan B adalah 0000 maka garis AB bersifat Fully Visible (Garis yang terlihat seluruhnya) sehingga garis tidak perlu dipotong. Dengan melakukan operasi AND juga dapat dibuktikan bahwa kedua verteks terletak dalam viewport dan akan ditampilkan seluruhnya (0000 AND 0000 = 0000).
![Page 8: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/8.jpg)
Region Code CD• 2. Garis CD• Verteks C (-5,3)• L = 0 → Karena X > Xmin yaitu -5 > -6• R = 0 → Karena X < Xmax yaitu -5 < 6• B = 0 → Karena Y > Ymin yaitu 3 > -6• T = 0 → Karena Y < Ymax yaitu 3 < 6• Sehingga region code dari verteks C adalah 0000• Verteks D (-1,7)• L = 0 → Karena X > Xmin yaitu -1 > -6• R = 0 → Karena X < Xmax yaitu -1 < 6• B = 0 → Karena Y > Ymin yaitu 7 > -6• T = 1 → Karena Y < Ymax yaitu 7 > 6• Sehingga region code dari verteks D adalah 1000
![Page 9: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/9.jpg)
Kesimpulan
Karena ada salah satu verteks dari garis CD yang region codenya tidak 0000 (yaitu verteks D), maka garis CD kemungkinan bersifat Partially Visible (Garis yang hanya terlihat sebagian) dan perlu dipotong. Sama seperti garis AB, garis CD pun dapat dibuktikan dengan operasi AND, yaitu 0000 AND 1000 = 0000.
![Page 10: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/10.jpg)
Menetukan Titik Potong
• Titik potong dihitung berdasarkan bit=1 dari region code dengan menggunakan panduan tabel berikut:
Region Bit Berpotongan dengan Dicari Titik Potong
L=1 xmin yp1 (xmin,yp1)
R=1 xmax yp2 (xmax,yp2)
B=1 Ymin xp1 (xp1,ymin)
T=1 ymax xp2 (xp2,ymax)
![Page 11: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/11.jpg)
• Dengan xp1, xp2, yp1, dan yp2 dihitung menggunakan persamaan berikut ini:
• Titik potong pada garis CD (-5,3)(-1,7)
Region code 1000 untuk verteks D(-1,7)• T = 1 → Karena T=1, maka yang dicari adalah xp2.
• Maka titik potongnya adalah (xp2, ymax) → (2, 6)
![Page 12: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/12.jpg)
Region Code EF• 3. Garis EF• Verteks E (4,-8)• L = 0 → Karena X > Xmin yaitu 4 > -6• R = 0 → Karena X < Xmax yaitu 4 < 6• B = 1 → Karena Y < Ymin yaitu -8 < -6• T = 0 → Karena Y < Ymax yaitu -8 < 6• Sehingga region code dari verteks E adalah 0100• Verteks F (9,-4)• L = 0 → Karena X > Xmin yaitu 9 > -6• R = 1 → Karena X < Xmax yaitu 9 > 6• B = 0 → Karena Y > Ymin yaitu -4 > -6• T = 0 → Karena Y < Ymax yaitu -4 < 6• Sehingga region code dari verteks F adalah 0010
![Page 13: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/13.jpg)
Kesimpulan
• Karena region code dari kedua verteks tidak 0000 , maka garis CD bersifat Fully Invisible(Garis yang tidak terlihat sama sekali), jadi garis tidak perlu digambar. Hal ini juga dapat dibuktikan dengan à 0100 AND 0110 = 0100
![Page 14: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/14.jpg)
Region Code GH4. Garis GHVerteks G (-7,-4)L = 1 → Karena X < Xmin yaitu -7 < -6R = 0 → Karena X < Xmax yaitu -7 < 6B = 0 → Karena Y > Ymin yaitu -4 > -6T = 0 → Karena Y < Ymax yaitu -4 < 6Sehingga region code dari verteks G adalah 0001Verteks H (-2,-7)L = 0 → Karena X Xmin yaitu -2 > -6R = 0 → Karena X Xmax yaitu -2 < 6B = 1 → Karena Y Ymin yaitu -7 < -6T = 0 → Karena Y Ymax yaitu -7 < 6Sehingga region code dari verteks A adalah 0100
![Page 15: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/15.jpg)
Kesimpulan
• Kedua verteks dari garis GH tidak mempunyai region code 0000. Tetapi jika kedua verteks dilakukan operasi AND, maka akan menghasilkan region code 0000. (0001 AND 0100 = 0000)
![Page 16: Clipping Line Menggunakan Algoritma Cohen-Sutherland](https://reader036.vdokumen.com/reader036/viewer/2022072106/56815ef0550346895dcdaeea/html5/thumbnails/16.jpg)
- Titik potong pada garis GH (-7,-4)(-2,-7)
- Region code 0001 untuk verteks G(-7,-4)L = 1 → Karena L=1, maka yang dicari adalah yp1.
Maka titik potongnya adalah (xmin, yp1) → (-6, -4.6)- Region code 0100 untuk verteks H(-2,-7)B = 1 → Karena B=1, maka yang dicari adalah xp1.
Maka titik potongnya adalah (xp1, ymin) → (-3.67, -6) » Ada 2 titik potong pada garis GH yaitu (-6, -4.6) dan (-3.67, -6)�