Grafika Komputer : Algoritma Klipping (Clipping ) - Pertemuan 11

Pertemuan 11

ALGORITMA KLIPPING
( CLIPPING )

Clipping
Clipping adalah metoda untuk hanya menampilkan garis pada area yang visible (terlihat)


Visible dan Invisible Line
⚫ Berdasarkan posisi garis terhadap area gambar maka garis dapat dibedakan menjadi :

⚫ Bagaimana menentukan visible dan invisible line? 
     fully visible :  (x1 ≥ xmin) dan (x1 ≤ xmax) dan (y1 ≥ ymin) dan (y1 ≤ ymax) dan (x2 ≥ xmin) dan                                    (x2 ≤ xmax) dan (y2 ≥ ymin) dan (y2 ≤ ymax) 
    partially visible : -- coba sendiri dan anda akan menemukan bahwa tidak mudah melakukan hal                                                 tersebut ! --

Algorithma Clipping
⚫ Berbagai algorithma telah dikembangkan untuk menangani masalah pemotongan garis tersebut,              antara lain : 
                                         Cyrus-Beck 
                                         Cohen-Sutherland

Algorithma Cohen-Sutherland
⚫ Area gambar dibatasi oleh xmin,xmax, ymin,ymax
⚫ Cohen dan Sutherland memberikan kode kepada tiap area yang mungkin dilewati oleh sebuah garis       atau disebut sebagai region code. 
⚫ Region code mempunyai panjang empat bit dan menggunakan urutan sebagai berikut :
T(op) = 1 jika ujung garis berada di atas area gambar selain itu 0 (nol) 
B(ottom)  = 1 jika ujung garis berada di bawah area gambar selain itu 0 (nol) 
L(eft) = 1 jika ujung garis berada di kiri area gambar selain itu 0 (nol) 
R(ight) = 1 jika ujung garis berada di kanan area gambar selain itu 0 (nol)

⚫ Sehingga diperoleh region code :


⚫ Garis kemungkinan partially visible atau fully invisible apabila region code dari ujung garis tersebut       mempunyai bit bernilai 1
⚫ Pemotongan (clipping) dilakukan terhadap ujung-ujung garis yang region code berisi bit bernilai 1. ⚫ Contoh sebelumnya menunjukkan bahwa ujung Pa, Pb, Qc,Qd dan Re yang akan mengalami                 pemotongan.



⚫ Dengan menggunakan cara yang sama maka lokasi titik potong untuk tiap area akan sesuai tabel di       bawah ini :
⚫ Koordinat titik potong dapat dicari dengan cara :


⚫ Contoh 
    • Diketahui : area gambar : (1,2)-(5,5) 
    • Ditanyakan : 
                             lokasi titik potong dari garis P (2,1) - (4,6) terhadap area gambar 
                             lokasi titik potong dari garis S (2,6) - (6,3)





⚫ Untuk ujung-ujung garis dengan region code berisi bit 1 maka ada tiga kemungkinan perpotongan          antara garis P dengan area gambar



⚫ Apabila ditemukan lebih dari satu titik potong maka pilih titik potong yang paling "dekat" dengan         area gambar. 
⚫ Bagaimana pengertian "dekat" didefinisikan? 
         Tugas anda mendefinisikan pengertian "dekat" tersebut!

⚫ Algorithma Cohen-Sutherland dapat dituliskan sebagai berikut :

Ambil ujung pertama (Pa) dari garis P 
rc = Tentukan Region Code dari Pa 
switch (rc)
0 : p  = Pa  
1 : p  = (xmin,yp1) 
2 : p  = (xmax,yp2) 
4 : p  = (xp2,ymin) 
5 : p1 = (xp2,ymin) ; p2 = (xmin,yp1) 
    Tentukan mana yang lebih dekat antara p1 & p2 
6 : p1 = (xp2,ymin) ; p2 = (xmax,yp2) 
    p  = Tentukan mana yang lebih dekat antara p1 & p2 
8 : p  = (xp1,ymax) 
9 : p1 = (xp1,ymax) ; p2 = (xmin,yp1) 
    p  = Tentukan mana yang lebih dekat antara p1 & p2 
10 : p1 = (xp2,ymax) ; p2 = (xmin,yp1) 
    p  = Tentukan mana yang lebih dekat antara p1 & p2

Ambil ujung kedua (Pb) dari garis P 
rc = Tentukan Region Code dari Pb 
switch (rc) 
0 : q  = Pb  
1 : q  = (xmin,yp1) 
2 : q  = (xmax,yp2) 
4 : q  = (xp2,ymin) 
5 : p1 = (xp2,ymin) ; p2 = (xmin,yp1) 
    q  = Tentukan mana yang lebih dekat antara p1 & p2 
6 : p1 = (xp2,ymin) ; p2 = (xmax,yp2) 
    q  = Tentukan mana yang lebih dekat antara p1 & p2 
8 : p1 = (xp1,ymax) 
9 : p1 = (xp1,ymax) ; p2 = (xmin,yp1) 
    q  = Tentukan mana yang lebih dekat antara p1 & p2 
10 : p1 = (xp2,ymax) ; p2 = (xmin,yp1) 
    q  = Tentukan mana yang lebih dekat antara p1 & p2 
        Gambar garis dari p menuju q

Komentar

Postingan populer dari blog ini

Grafika Komputer : PROYEKSI - Pertemuan 12

Grafika Komputer : DUNIA 3 DIMENSI - Pertemuan 13

Grafika Komputer : TRANSFORMASI 2 DIMENSI - Pertemuan 10