Anda di halaman 1dari 16

Clipping Line

Menggunakan
Algoritma CohenSutherland
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.
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 < xmin
0 apabila x xmin

1 apabila x > xmax


0 apabila x xmax

1 apabila y < ymin


0 apabila y ymin

1 apabila y > ymax


0 apabila y ymax

Arti region code


Region Code
Arti
0000
Terletak di dalam viewport
0001
Terletak di sebelah kiri viewport
0010
Terletak di sebelah kanan viewport
0100

Terletak di sebelah bawah viewport

0101

Terletak di
viewport
Terletak di
viewport
Terletak di
Terletak di

0110
1000
1001
1010

sebelah kiri bawah


sebelah kanan bawah
sebelah atas viewport
sebelah kiri atas viewport

Terletak di sebelah kanan atas


viewport&

Contoh
Keterangan Gambar :
Xmax = 6
Xmin = -6
Ymax = 6
Ymin = -6
1.
3.
2.
4.

Garis
Garis
Garis
Garis

AB (1,2)(4,4)
EF (4,-8)(9,-4)
CD (-5,3)(-1,7)
GH (-7,-4)(-2,-7)

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
garis AB bersifatFully 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)
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 (yaitu verteks D), maka garis CD
kemungkinan bersifatPartially
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 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)

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)

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

Anda mungkin juga menyukai