1.
Metode Clipping
1.1
Definisi Metode Clipping
Metode
clipping merupakan metode untuk menghilangkan garis yang tidak
perlu digambar apabila melebihi window viewing ( area gambar). Metode
clipping
saat ini cukup banyak, karena perkembangannya searah dengan
berkembangnya
dunia grafik computer. Dalam metode clipping terdapat
beberapa
cara, yaitu Line
clipping, Point clipping, dan Algoritma clipping.
1.2
Macam-Macam Metode Clipping
1.2.1
Point Clipping
Teknik
yang digunakan untuk mengimplementasikan point clipping cukup sederhana yaitu
dengan menggunakan rumus umum sebagai berikut :
Xmin ≤ x ≤ Xmax
Ymin ≤ y ≤ Ymax
Dimana Xmin, Ymin, Xmax, Ymax merupakan batas clip window untuk
clipping window yang berbentuk persegi empat dengan posisi standar. Kedua
kondisi di atas harus terpenuhi agar teknik ini dapat dijalankan.Jika salah
satu tidak terpenuhi maka titik tersebut tidak berada dalam clipping window.
1.2.2
Line Clipping
Line Clipping atau
kliping garis diproses dengan inside-outside test dengan memeriksa endpoint
dari garis tersebut. Berdasarkan test tersebut garis dapat dikategorikan
menjadi empat jenis.
Kondisi garis terhadap jendela
Clipping :
1. Invisible : Tidak kelihatan, terletak di
luar jendela Clipping.
2. Visible : Terletak di dalam jendela
Clipping.
3. Halfpartial
: Terpotong sebagian oleh jendela Clipping, bisa hanya
dengan
bagian atas, bawah, kiri atau kanan.
4. Vollpartial : Terpotong
penuh oleh jendela Clipping. Garis melintasi
jendela
Clipping.
Untuk garis yang invisible dan visible tidak perlu dilakukan
aksi clipping karena pada kondisi invisible, garis tidak
perlu ditampilkan, sedangkan pada kondisi visible garis
bisa langsung ditampilkan. Untuk segmen garis dengan endpoint (x1, y1) dan (x2,
y2) serta keduanya terletak di luar clipping window memiliki persamaan.
Y = x1 + u(x2 - x1)
X = x1 + u(x2 - x1)
0 ≤ u ≤ 1.
Persamaan tersebut dapat digunakan untuk mengenali nilai
parameter u untuk koordinat pemotongan dengan bata clipping window.
1.2.3
Algoritma Clipping
Ada beberapa Algoritma
dalam melakukan teknk line clipping, diantaranya: Cohen-Sutherland dan Liang-Barsky.
Dimana setiap endpoint atau titik ujung dari garis direpresentasikan ke dalam
empat angka biner yang disebut region code dan Liang-Barsky.
1.2.3.1
Algoritma Cohen-Sutherland
Seperti diketahui,
titik merupakan elemen terkecil dari suatu gambar.Sehingga, kita bisa mentest
setiap titik yang merupakan bagian dari gambar yang dipilih. Hal ini tentu akan
memakan waktu yang cukup lama. Sehingga, berdasarkan pemotongan titik yang
dijelaskan di atas , dikembangkan suatu algoritma untuk mentest apakah suatu
garis berada di dalam atau di luar jendela dengan hanya mentest apakah suatu
penggal paris berada di dalam atau di luar jendela ditemukan Cohen-Sutherland,
sehingga disebut dengan algoritma Cohen-Sutherland.
4
|
3
|
2
|
1
|
0
|
0
|
0
|
0
|
Bit ke-1 : Region Kiri (L)
Bit ke-2 : Region Kanan (R)
Bit ke-3 : Region Bawah (B)
Bit ke-4 : Region Atas (T)
Bit dengan nilai 1 menandakan bahwa titik berada pada region
yang bersangkutan. Jika tidak maka di-set nilai 0.
1.2.3.2
Algoritma Liang-Barsky
Clipping yang lebih cepat dikembangkan berdasarkan
persamaan parametrik dari segmen garis dapat ditulis dalam bentuk:
x
= x1 + u.dx
y
= y1 + u.dy
Dimana dx = x2 – x1
dan dy = y2-y1. Dimana nilai uЄ[0,1]. Menurut
Liang dan Barsky bentuk pertidaksamaan sebagai berkut:
xwmin <= x1 + u.dx <=
xwmax
ywmin <= y1 + u.dy <=
ywmax
Dengan
u.pk <= qk,
k=1,2,3,4
Dimana parameter p dan q ditentukan sebagai berikut:
k = 1 (Kiri): p1
= -dx, q1= x1-xwmin
k = 2 (Kanan): p2
= dx, q2= xwmax – x1
k = 3 (Bawah):
p3 = -dy, q3= y1-ywmin
k = 4 (Atas): p4
= dy, q4= ywmax-y1
Garis yang sejajar dengan salah satu batas clipping
mempunyai pk = 0 untuk nilai k=1,2,3,4 yaitu left, right, botton,
dan top. Untuk setiap nilai k, juga diperoleh qk<0, maka garis
sepenuhnya diluar batas clipping. Bila qk>=0, maka garis didalam
dan sejajar batas clipping.
Bila pk<0, garis memotong batas
clipping dari luar ke dalam, dan bila pk>0, garis memotong batas
clipping dari dalam ke luar. Untuk nilai pk yang tidak sama dengan
0, nilai u dapat diperoleh dengan
u = qk / pk
Untuk setiap
garis, dapat dihitung nilai dan parameter u1 dan u2 yang
menentukan posisi garis dalam bidang clipping. Nilai u1
diperlihatkan dengan batas clipping dimana garis memotong batas clipping dari
luar ke dalam (p<0).
rk = qk / pk
Dengan nilai u1
adalah nilai maksimum dari nilai 0 dan bermacam-macam nilai r. Sebaliknya nilai
u2 ditentkan dengan memeriksa batas dimana clipping dipotong oleh garis
dari dalam keluar (p>0). nilai rk dihitung untuk setiap batas
clipping, dan nilai u2 merupakan nilai minimum dari sekumpulan nilai
yang terdiri dari 1 dan nilai r yang dihasilkan. Bila u1>u2,
maka garis sepenuhnya berada di luar clip window dan dapat dihilangkan .
sebaliknya bila tidak endpoint dari garis yang di clip dihitung dari dua nilai parameter
u.
Untuk
(pi < 0) → t1 = Max (rk)
Untuk
(pi > 0) → t2 = Min (rk)
Jika t1
< t2 cari nilai endpoint yang baru.
t1
→ ( x1 + dx * t1 , y1 + dy * t1) titik
awal garis yang baru
t2 →
( x1 + dx * t1 , y1 + dy * t1) titik
ujung garis yang baru
Algoritma
Liang-Barsky lebih efisien dibandingkan dengan Cohen-Sutherland karena perhitungan
titik potong dihilangkan.
STUDI KASUS dan
PEMBAHASAN
Di bab ini kami
mengambil beberapa contoh soal untuk
dijadikan studi kasus dalam tulisan ini. Studi kasus yang diambil berhubungan
dengan Point Clipping.
Terdapat 2 buah titik,
yaitu P1(2,2) dan P2(3,6) dengan Xmin =
1, Xmax = 5, Ymin = 1, dan Ymax = 5.
Pembahasan
Dari gambar di atas
dapat dilihat bahwa titik P2 tidak memenuhi kedua kondisi umum dari vertex
clipping berada sehingga titik P2 tidak akan di tampilkan.
Clipping titik dapat
diaplikasikan pada scene yang menampilkan ledakan atau percikan air pada
gelombang laut yang dibuat dengan mendistribusikan beberapa partikel.
Jika
diketahui area gambar ditentukan dengan xMin = 1, yMin = 1 dan xMax = 4, yMax
=
5 dan dua buah garis:
1.
P(-1,-2) – (5,6)
2.
Q(-1,5) – (6,7)
Maka tentukan region code dari masing-masing ujung garis
tersebut.
Pembahasan:
1. Garis P:
Ujung garis
P(-1, -2)
L = 1; karena x
< xMin atau -1 < 1
R = 0; karena x
< xMax atau -1 < 4
B = 1; karena y
< yMin atau -2 < 1
T = 0; karena y
< yMax atau -2 < 5
Dengan demikian
region code untuk ujung P(-1,-2) adalah 0101, ujung garis P(5,6).
L = 0; karena x
> xMin atau 5 > 1
R = 1; karena x
> xMax atau 5 > 4
B = 0; karena y
> yMin atau 6 > 1
T = 1; karena y
> yMax atau 6 > 5
Dengan demikian region
code untuk ujung P(5,6) adalah 1010, karena region
code dari
kedua ujung garis tidak sama dengan 0000 maka garis P bersifat
kemungkinan partialy
invisible dan perlu dipotong.
2. Garis Q:
Dengan cara yang
sama pada garis P maka akan ditentukan region code:
Ujung garis
Q(-1,5) mempunyai region code = 0001
Ujung garis
Q(6,7) mempunyai regian code = 1010
Karena region
code tidak sama dengan 0000 maka garis Q bersifat kemungkinan
partialy invisible dan
perlu dipotong.
Referensi:
xa.yimg.com/kq/groups/23340420/787728629/name/Pertemuan9.pdf
-FEBISARFINA-
Tidak ada komentar:
Posting Komentar