Clipping Line Menggunakan Algoritma CohenSutherland Contoh Real Clipping

  • Slides: 16
Download presentation
Clipping Line Menggunakan Algoritma Cohen-Sutherland Contoh Real

Clipping Line Menggunakan Algoritma Cohen-Sutherland Contoh Real

Clipping Line Menggunakan Algoritma Cohen-Sutherland • Algoritma Cohen-Sutherland merupakan metode untuk menentukan apakah sebuah

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

Susunan Region Code Bit ke 0 Region Bit L Isi 1 apabila x <

Susunan Region Code Bit ke 0 Region Bit L Isi 1 apabila x < xmin 0 apabila x ≥ xmin 1 R 1 apabila x > xmax 0 apabila x ≤ xmax 2 B 1 apabila y < ymin 0 apabila y ≥ ymin 3 T 1 apabila y > ymax 0 apabila y ≤ ymax

Arti region code Region Code 0000 0001 0010 Arti Terletak di dalam viewport Terletak

Arti region code Region Code 0000 0001 0010 Arti Terletak di dalam viewport Terletak di sebelah kiri viewport 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 1001 Terletak di sebelah atas viewport Terletak di sebelah kiri atas viewport 1010 Terletak di sebelah kanan atas viewport&

Contoh Keterangan Gambar : Xmax = 6 Xmin = -6 Ymax = 6 Ymin

Contoh Keterangan Gambar : Xmax = 6 Xmin = -6 Ymax = 6 Ymin = -6 1. 3. 2. 4. Garis AB (1, 2)(4, 4) Garis EF (4, -8)(9, -4) Garis CD (-5, 3)(-1, 7) Garis GH (-7, -4)(-2, -7)

Region Code AB 1. Garis AB Verteks A (1, 2) L = 0 →

Region Code AB 1. Garis AB Verteks A (1, 2) L = 0 → Karena X > Xmin yaitu 1 > -6 R = 0 → Karena X < Xmax yaitu 1 < 6 B = 0 → Karena Y > Ymin yaitu 2 > -6 T = 0 → Karena Y < Ymax yaitu 2 < 6 Sehingga region code dari verteks A adalah 0000 Verteks B (4, 4) L = 0 → Karena X > Xmin yaitu 4 > -6 R = 0 → Karena X < Xmax yaitu 4 < 6 B = 0 → Karena Y > Ymin yaitu 4 > -6 T = 0 → Karena Y < Ymax yaitu 4 < 6 Sehingga region code dari verteks B adalah 0000

Kesimpulan • Karena region code dari kedua verteks A dan B adalah 0000 maka

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).

Region Code CD • • • • 2. Garis CD Verteks C (-5, 3)

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

Kesimpulan Karena ada salah satu verteks dari garis CD yang region codenya tidak 0000

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.

Menetukan Titik Potong • Titik potong dihitung berdasarkan bit=1 dari region code dengan menggunakan

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 yp 1 (xmin, yp 1) R=1 xmax yp 2 (xmax, yp 2) B=1 Ymin xp 1 (xp 1, ymin) T=1 ymax xp 2 (xp 2, ymax)

 • Dengan xp 1, xp 2, yp 1, dan yp 2 dihitung menggunakan

• Dengan xp 1, xp 2, yp 1, dan yp 2 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 xp 2. • Maka titik potongnya adalah (xp 2, ymax) → (2, 6)

Region Code EF • • • • 3. Garis EF Verteks E (4, -8)

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

Kesimpulan • Karena region code dari kedua verteks tidak 0000 , maka garis CD

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

Region Code GH 4. Garis GH Verteks G (-7, -4) L = 1 →

Region Code GH 4. Garis GH Verteks G (-7, -4) L = 1 → Karena X < Xmin yaitu -7 < -6 R = 0 → Karena X < Xmax yaitu -7 < 6 B = 0 → Karena Y > Ymin yaitu -4 > -6 T = 0 → Karena Y < Ymax yaitu -4 < 6 Sehingga region code dari verteks G adalah 0001 Verteks H (-2, -7) L = 0 → Karena X Xmin yaitu -2 > -6 R = 0 → Karena X Xmax yaitu -2 < 6 B = 1 → Karena Y Ymin yaitu -7 < -6 T = 0 → Karena Y Ymax yaitu -7 < 6 Sehingga region code dari verteks A adalah 0100

Kesimpulan • Kedua verteks dari garis GH tidak mempunyai region code 0000. Tetapi jika

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)

- Titik potong pada garis GH (-7, -4)(-2, -7) - Region code 0001 untuk

- 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 yp 1. Maka titik potongnya adalah (xmin, yp 1) → (-6, -4. 6) - Region code 0100 untuk verteks H(-2, -7) B = 1 → Karena B=1, maka yang dicari adalah xp 1. Maka titik potongnya adalah (xp 1, ymin) → (-3. 67, -6) � » Ada 2 titik potong pada garis GH yaitu (-6, -4. 6) dan (-3. 67, -6)