Clipping Line Menggunakan Algoritma Cohen-Sutherland

16
Clipping Line Menggunakan Algoritma Cohen-Sutherland Contoh Real

description

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 . - PowerPoint PPT Presentation

Transcript of Clipping Line Menggunakan Algoritma Cohen-Sutherland

Page 1: Clipping Line  Menggunakan Algoritma  Cohen-Sutherland

Clipping Line Menggunakan Algoritma Cohen-Sutherland

Contoh Real

Page 2: Clipping Line  Menggunakan Algoritma  Cohen-Sutherland

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

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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