My Gallery

Kamis, 14 Januari 2016

Klipping


Grafik komputer dan pengolahan citra
Klipping



Definisi


      Kliping adalah pemotongan suatu objek dengan bentuk tertentu


   Alasan dilakukannya kliping :

 Menghindari perhitungan koordinat pixel yang rumit
(karenanya kliping dilakukan sebelum rasterisasi).

 Interpolasi parameter


   Sarana pemotong objek disebut jendela kliping.

      Fungsi jendela kliping adalah untuk mengidentifikasi objek yang akan di-clipping dan memastikan bahwa data yang diambil hanya yang terletak di dalam jendela clipping.


   Bentuk jendela kliping :

 Segi empat, segi tiga
 Lingkaran atau ellips

 Polygon dan lain-lain.

Kliping Titik


      Untuk menentukan letak suatu titik di dalam jendela kliping, digunakan ketentuan :

Xmin O X Ymin O Y

O Xmax   dan
O Ymax


P2
P1






Ymax





Xmin          Xmax

Ymin

      Pada gambar di atas, terdapat sebuah jendela kliping dengan parameter sebagai berikut :
Xmin - batas minimum sumbu X Xmax - batas maksimum sumbu x Ymin - batas minimum sumbu Y Ymax - batas maksimum sumbu Y


    Terdapat w2 buah titik P1(x,y) dan P2(x,y) dengan :
   P1 terletak di dalam jendela kliping,karena
P1.x < Xmax dan P1.x > Xmin serta  P1.y < Ymax dan P1.y > Ymin
   P2 terletak di dalam jendela kliping,karena
P2.x < Xmin walaupun      P2.x < Xmax
P2.y < Ymax dan P2.y > Ymin

Kliping Garis (1/2)



      Kliping sebuah garis P1 dan P2 dengan jendela L, R, T, dan B akan berhubungan dengan garis yang terletak di dalam jendela dan garis di luar jendela. Garis yang berada di dalam jendela adalah garis yang akan ditampilkan (P1’ P2), sedangkan garis yang terletak di luar jendela dibuat tidak tampak (P1
P1’ dan P2 P2)
T
P2



P2’

L                                                           R



P1’

P1
B

      Untuk menentukan letak sebuah garis di dalam jendela kliping dilakukan analisis letak titik yang menentukan garis tersebut dan memastikan bahwa titik-titik tersebut berada di dalam jendela kliping.


Titik Asli
Titik Semu
Kondisi X
Kondisi Y
P1(x,y)
P1’(x,y)
P1(x) L
P1(y) T
P2(x,y)
P2’(x,y)
P2(x) R
P2(x) B

Kliping Garis (2/2)

    Kondisi garis terhadap jendela kliping :

   Invisible : Tidak kelihatan, terletak di luar jendela kliping
   Visible : Terletak di dalm jendela kliping

    Halfpartial : Terpotong sebagian oleh jendela kliping, bisa hanya dnegan bagian atas, bawah, kiri atau kanan
    Vollpartial : Terpotong penuh oleh jendela kliping. Garis melintasi jendela kliping


    Algoritma Umum Kliping

Mulai




Baca Garis




Baca Jendela Klip ing





Invisible            Cek Garis

Visible






Kliping Garis




P’(x,y),P2'(x,y)



Gambar Garis

Selesai

Kliping Garis
Cohen-Sutherland (1/6)


      Hubungan antara sebuah garis dengan jendela kliping dapat ditulis seperti hubungan antara titik awal dan titik akhir sebuah garis dengan jendela kliping
P1(x,y) dan P2(x,y)  W(L,R,T,B)

      Untuk menentukan relasi tersebut diperlukan suatu struktur data pembantu yang disebut pointcode. Dengan pointcode kita dapat mengidentifikasi posisi titik terhadap jendela kliping.

      Nilai untuk pointcode l, r, t dan b adalah 1 dan 0 yang merupakan nilai logika yang dapat dimengerti dengan nilai true dan false.

      Suatu titik yang visible berarti titik tersebut terletak di dalam jendela kliping, dan invisible jika terletak di luar jendela kliping.


      Suatu titik itu visible dengan pointcode jika nilai l, r, t dan b adalah nol, artinya jika salah satu nilai dari l, r, t dan b tidak sama degan nol maka dapat diketahui bahwa titik tersebut terletak di luar jendela kliping dan diketahui pada posisi mana.

Kliping Garis
Cohen-Sutherland (2/6)

    Berdasarkan urutan kode, pointcode ditentukan :
T
B
R
L

 
001
1000
101


001


0000


001
101
0100
011

 
1                                             0


0                                             0


0                                             0


pointcode
Arti Kode
0000
Terletak di dalam jendela kliping
0001
Terletak di sebelah kiri jendela kliping
0010
Terletak di sebelah kanan jendela kliping
0100
Terletak di sebelah bawah jendela kliping
0101
Terletak di sebelah kiri bawah jendela kliping
0110
Terletak di sebelah kanan bawah jendela kliping
1000
Terletak di sebelah atas jendela klipig
1001
Terletak di sebelah kiri atas jendela kliping
1010
Terleak di sebelah kanan atas jendela kliping

      Titik terletak di dalam jendela kliping jika jumlah keempat pointcode adalah nol :L + R + T + B  = 0

      Titik terletak di luar jendela kliping jika jumlah keempat pointcode lebih besar dari nol. L + R + T + B  > 0

Kliping Garis
Cohen-Sutherland (3/6)

          Visibilitas suatu garis tergantung dari pointcode pada kedua titik yang membentuk garis tersebut, yaitu P1 dan P2.
      Jika P1 dan P2 di dalam jendela kliping maka garis adalah
visible

       Jika salah satu dari titik P1 atau P2 di uar jendela kliping, artinya garis adalah halfpartial
      Jika titik P1 dan P2 di luar jendela kliping, artinya garis adalah
invisible.
      Jika P1 dan P2 melintasi jendela kliping, artinya garis adalah
vollpartial



       Algoritma Kliping Cohen-Sutherland :
1.     Tentukan regioncode dari setiap endpoint
2.      Jika kedua endpoint memiliki regioncode 0000, maka garis berada di dalam jendela kliping. Gambar garis tersebut
3.     Jika tidak, lakukan operasi logika AND untuk kedua regioncode
3.1. Jika hasilnya 0000, maka buang garis tersebut (tolak)
3.2 Jika tidak (hasilnya 000), maka dibutuhkan kliping
3.2.1. Pilih salah satu endpoint yang berada di luar jendela kliping
3.2.2. Cari titik persinggungan pada batas jendela (berdasarkan regioncode)
3.2.3. Ganti endpoint dengan titik persinggungan dan update regioncode
3.2.4. Ulangi langkah 2 hingga diperoleh garis klipping yang diterima dan yang ditolak
4. Ulangi langkah 2 untuk garis yang lain.

Kliping Garis
Cohen-Sutherland (4/6)



   Daerah titik persinggungan dapat dilihat dari nilai bit :

 Jika bit 1 = 1, titik persinggungan ada di atas
 Jika bit 2 = 1, titik persinggungan ada di bawah

 Jika bit 3 = 1, titik persinggungan ada di kanan
 Jika bit 4 = 1, titik persinggungan ada di kiri

      Titik persinggungan dapat dicari dengan persamaan garis :

 Persinggungan antara batas KIRI dan KANAN
x = xwmin (LEFT)                 x = xwmax (RIGHT)



y = y1 + m(x x1)



 Persinggungan antara batas ATAS dan BAWAH
y = ywmin (BOTTOM)      y  = ywmax (TOP)



x = x1 + (y y1)/m

Kliping Garis
B1
1001
D1



1010
B2






0001
D1”

A2


A1                   0000
C1’


C2                                             D2”






0010


0101


0100                   D2’


0110

 
Cohen-Sutherland (5/6)










C1


















Garis A1- A2
1. A1=0000,A2=0000
2. (both 0000) Yes


Garis C1 C2
1. C1=0001,C2=0000
2. (both 0000) No
3. AND Operation

D2





……now
1. C1=0000,C2=0000

-> accept & draw


Garis B1 B2

C1 Æ
C2 Æ
Result

0001
0000
0000


2. (both 0000) Yes
Æ accept & draw

1. B1=1001,B2=1010
2. (both 0000) No
3. AND Operation
B1 Æ  1001
B2 Æ  1010
Result 1000
3.1 (not 0000) Yes
Æ reject

3.1 (not 0000) - No
3.2 (0000) - Yes
3.2.1 Choose C1
3.2.2 Intersection point
C1 at LEFT
3.2.3 C1 < C1’ C1 = 0000
3.2.4 repeat 2

next…….

Kliping Garis



(150,





(10, 10)


 
Cohen-Sutherland (6/6)

100)

















Diketahui jendela kliping seperti di atas. Bila titik P1 adalah (0, 120) dan titik P2(130, 5), carilah titik-titik persinggungan yang membentuk garis baru di dalam jendela kliping. Gunakan algoritma Cohen- Sutherland !

1. P1=1001, P2=0100
2. (both 0000) No
3. AND Operation
B1 Æ  0000
B2 Æ  0100
Result 0000
3.1 (not 0000) no
3.2 (0000) yes
3.2.1choose P2
3.2.2 intersection with BOTTOM
boundary
m = (5-120)/(130-0) = -0.8846
x = x1 + (y y1)/m    where y = 10;
x = 130 + (10-5)/ -0.8846 = 124.35
P2’ = (124, 10)
3.2.3 update region code
P2’ = 0000
3.2.4 repeat step 2
next……..
.now
1. P1=1001, P2=0100
2. (both 0000) yes
Æ ACCEPT & DRAW

Endpoints after clipping
P1 = (22, 100) P2’ = 124, 10)

Kliping Poligon
Sutherland-Hodgeman (1/2)


      Kliping poligon lebih kompleks dibandingkan kliping garis :
 Input: poligon
 Output: poligon asli, poligon baru, atau lainnya



      Contoh : Apa yang terjadi apabila pada suatu segitiga dilakukan kliping ?
Kemungkinan hasilnya :










segitiga Ö segitiga   segitiga Ö segiempat    segitiga Ö segilima

Kliping Poligon
Sutherland-Hodgeman (2/2)

   Ide Dasar Kliping Poligon :

 Perhatikan setiap edge pada setiap arah pandang.
 Klip/potong poligon dengan persamaan edge.
    Lakukan pada semua edge, hingga poligon tersebut secara penuh ter-klip/terpotong.

Tidak ada komentar:

Posting Komentar