Setelah mengetahui pengertian clipping maka sobat bisa lanjut dengan penjelasan yang masih berkaitan dengan ruang lingkup clipping atau pemotongan tersebut, namun perlu diketahui bahwa postingan ini saya dapatkan dari hasil kuliah dosen grafika komputer universitas pakuan bogor. Sekarang lanjut ke penjelasan berikutnya.
Clipping Window / Viewport
1. Fungsi clipping window Mengidentifikasi obyek yang akan di clip dan memastikan bahwa data yang di ambil hanya yang terletak di dalam clipping window.
2. Bentuk Clipping Window :
- Segi empat, segi tiga
- Lingkaran atau elips
- Poligon dan lain-lain
Clipping 2 Dimensi
1. Tidak semua garis harus digambar di area gambar karena garis-garis yang tidak terlihat di area gambar seharusnya tidak perlu digambar.
2. Metode untuk menentukan bagian garis yang perlu digambar atau tidak perlu digambar disebut clipping.
3. Clipping juga dapat diartikan sebagai suatu tindakan untuk memotong suatu objek dengan bentuk tertentu.
Ketampakan Garis (Line Visibility)
Posisi ketampakan garis terhadap area gambar (viewport) :
1. Garis yang terlihat seluruhnya (fully visible) : garis tidak perlu dipotong
2. Garis yang hanya terlihat sebagian (partially visible) : garis yang perlu dipotong
3. Garis yang tidak terlihat sama sekali (fully invisible) : garis tidak perlu digambar
Algoritma Cohen-Sutherland
- Algoritma Cohen-Sutherland merupakan metode untuk menentukan apakah sebuah garis perlu dipotong atau tidak dan menentukan 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 :
Contoh:
Jika diketahui area gambar ditentukan dengan x min =1, y min = 1 dan x max =4, y max =4
1. P (–1, –2) dan (5,6)
2. Q (–1,5) dan (6,7)
maka untuk menentukan region code dari masing-masing garis tersebut adalah :
1. Garis P
Ujung garis P (–1, –2)
L=1 karena x < xmin yaitu –1 < 1
R=0 karena x < xmax yaitu –1 < 4
B=1 karena y < ymin yaitu –2 < 1
T=0 karena y < ymax yaitu –2 < 5
sehingga region code untuk ujung P (–1, –2) adalah 0101
Ujung garis P (5, 6)
L=0 karena x > xmin yaitu 5 > 1
R=1 karena x > xmax yaitu 5 > 4
B=0 karena y > ymin yaitu 6 > 1
T=1 karena y > ymax yaitu 6 > 5
sehingga region code untuk ujung P (5, 6) adalah 1010, Karena region code kedua
ujung garis tidak 0000 maka garis P kemungkinan invisible dan perlu dipotong.
2. Garis Q
Ujung garis P (–1, 5)
L=1 karena x < x min yaitu –1 < 1
R=0 karena x < x max yaitu –1 < 4
B=0 karena y > y min yaitu 5 > 1
T=0 karena y = y max yaitu 5 = 5
sehingga region code untuk ujung P (–1, –2) adalah 0001
Ujung garis P (6, 7)
L=0 karena x > x min yaitu 6 > 1
R=1 karena x > x max yaitu 6 > 4
B=0 karena y > y min yaitu 7 > 1
T=1 karena y > y max yaitu 7 > 5
sehingga region code untuk ujung P (5, 6) adalah 1010
Karena region code kedua ujung garis tidak 0000 maka garis Q
kemungkinan bersifat partialy invisible dan perlu dipotong.
Menentukan Titik Potong
- Langkah berikutnya menentukan lokasi titik potong antara garis tersebut dengan batas areagambar.
- Titik potong dihitung berdasarkan bit=1 dari region code dengan menggunakan panduan tabel berikut :
3. Dengan xp1,xp2,yp1, dan yp2 dihitung menggunakan persamaan berikut ini
4. Bergantung pada lokasi ujung garis maka akan diperoleh 2,3,atau 4 titik potong seperti
gambar berikut:
5. Bila ditemukan titik potong lebih dari 2 pada 1 ujung maka pilih titik potong yang ada di
dalam area gambar.
Untuk contoh diatas titik potong pada garis P adalah :
Region Bit B = 1 titik (1.25 , 1)
Region Bit R = 1 titik (4, 4.7)
cara mencarinya sebagai
Titik potong garis P (-1,-2) – (5,6)
m = y2 – y1 = 6 – (-2 ) = 8/6 x2 – x1 = 5 – (-1)
Region code 0101 di titik (-1,-2) :
• L=1
• L=1
yp1 = y1 + m * (x min – x1)
= -2 + (8/6) * (1-(-1)
yp1 = 0,67
Titik potongnya adalah (xmin,yp1) = (1, 0.67)
• B=1
xp1 = x1 + (y min – y1)/ m
= -1 + (1 - (-2))/(8/6)
xp1 = 1,25
Titik potongnya adalah (xp1,ymin) = (1.25, 1)
= -2 + (8/6) * (1-(-1)
yp1 = 0,67
Titik potongnya adalah (xmin,yp1) = (1, 0.67)
• B=1
xp1 = x1 + (y min – y1)/ m
= -1 + (1 - (-2))/(8/6)
xp1 = 1,25
Titik potongnya adalah (xp1,ymin) = (1.25, 1)
Region code 1010 di titik (5,6) :
• R=1
yp2 = y1 + m * (x max – x1)
= 6 + (8/6) * (4-5)
yp2 = 4,7
Titik potongnya adalah (x max ,yp2) = (4, 4.7)
• T=1
xp2 = x1 + (y max – y1)/ m
= 5 + (5 - 6)/( 8/6)
xp2 = 4,25
Titik potongnya adalah (xp2,y max ) = (4.25, 5)
Ada 4 titik potong pada garis P yaitu (1, 0.67), (1.25,1), (4, 4.7), (4.25, 5). Pilih titik potong yang terdapat dalam viewport yaitu (1.25,1) dan (4, 4.7)
• R=1
yp2 = y1 + m * (x max – x1)
= 6 + (8/6) * (4-5)
yp2 = 4,7
Titik potongnya adalah (x max ,yp2) = (4, 4.7)
• T=1
xp2 = x1 + (y max – y1)/ m
= 5 + (5 - 6)/( 8/6)
xp2 = 4,25
Titik potongnya adalah (xp2,y max ) = (4.25, 5)
Ada 4 titik potong pada garis P yaitu (1, 0.67), (1.25,1), (4, 4.7), (4.25, 5). Pilih titik potong yang terdapat dalam viewport yaitu (1.25,1) dan (4, 4.7)
Tidak ada komentar:
Posting Komentar