Clipping Grafika Komputer Murinto, M.Kom
Clipping Prosedur yang mendefinisikan bagian gambar, baik di dalam maupun di luar suatu bidang tertentu di sebut dengan algoritma clipping/clipping Pada transformasi viewing, perlu ditampilkan bagian gambar yang terdapat dalam window. Semua yang berada di luar window akan dibuang. Clipping dapat diterapkan pada world coordinate, sehingga hanya isi yang berada dalam window dipetakan ke device coordinat. Tahun Ajaran 06/07 2
Algoritma Clipping Algoritma clipping digunakatn untuk berbagai macam primitif, yaitu : - Clipping titik - Clipping garis - Clipping area (poligon) - Clipping kurva - Clipping teks Tahun Ajaran 06/07 3
CLIPPING TITIK Pada Clipp window yang mempunyai bentuk persegi empat dengan posisi standar, titik P(x,y) disimpan untuk ditampilkan bila : xw x min xw max dimana batas clip window dapat berada di dalam batas world coordinate atau viewport coordinate. yw min x yw max Tahun Ajaran 06/07 4
Clipping Garis Prosedur clipping untuk garis dapat dijelaskan sebagai berikut : Clipping garis diproses dengan inside-outside tes dengan memeriksa endpoint dari garis. Garis yang mempunyai kedua endpoint di dalam batas clipping, maka garis tersebut disimpan. Sedang bila kedua endpoint tidak berada di dalam, maka garis tersebut berada di luar window. Semua garis lain yang memotong satu atau lebih batas clipping memerlukan algoritma clipping yang dapat mengidentifkasi dengan efisien bahwa garis di luar batas clipping. Tahun Ajaran 06/07 5
Clipping Garis F D D B C Hl H E clip Persegi empat A G Tahun Ajaran 06/07 6 G I I J J
Clipping Garis D B C Hl A G Tahun Ajaran 06/07 7
Algoritma Recursive Subdivision (membagi garis pada titik tengah) Bagus untuk binary processing Bounded number (10 atau 12) dari step (melalui ukuran pixel) Tahun Ajaran 06/07 8
Recursive Subdivision Clipping P1 P0 Clip Persegi Tahun Ajaran 06/07 9
Recursive Subdivision Clipping Clip persegi P1 P0 Titik tengah (Midpoint) Tahun Ajaran 06/07 10
Recursive Subdivision Level 1 Stack kedua pertengahan P1 P0 Midpoint Tahun Ajaran 06/07 11
Recursive Subdivision Level 2 Tahun Ajaran 06/07 12
Recursive Subdivision Level 3 Tahun Ajaran 06/07 13
Recursive Subdivision Level 3 Tahun Ajaran 06/07 14
Recursive Subdivision Level 2 Tahun Ajaran 06/07 15
Recursive Subdivision Level 3 Tahun Ajaran 06/07 16
Recursive Subdivision Level 3 Tahun Ajaran 06/07 17
Recursive Subdivision Clipping P1 P0 Clip persegi Tahun Ajaran 06/07 18
Akurasi sampai 3 Binary Digits Tahun Ajaran 06/07 19
Recursive Subdivision Algoritma Kovergensinya Linear Menghitung 1 binary digit tiap satu loop Secara alami bekerja dengan shift register stabil Tahun Ajaran 06/07 20
Parameter persamaan Garis P( t) ( 1 t) P t where, P 0 1 P (0) ; P( 1) P P 0 1 Tahun Ajaran 06/07 21
Clip batas-batas x = a P1 P0 x a Clipping Edge Tahun Ajaran 06/07 22
Gunakan Kesamaan Segitiga Clipping Edge P1 P0 Clipping Edge x a Tahun Ajaran 06/07 23
Gunakan Kesamaan Segitiga Gunakan rasio garis ini Yaitu, t a x x 0 x 1 0 Dan, sama juga untuk garis eksplisit Tahun Ajaran 06/07 24
Clipping garis Cohen-Sutherland
Cohen-Sutherland Metode ini mempercepat pemrosesan segmen garis dengan mengurangi jumlah perpotongan yang harus dihitung. Setiap endpoint dari garis dalam gambar dinyatakan dalam 4 digit kode biner disebut region code Nilai 1 pada setiap posisi bit menerangkan bahwa titik berada pada posisi region tersebut, jika tidak nilainya 0 Nilai region code dapat ditentukan dengan 2 langkah: - hitung perbedaan antara koordinat endpoint dengan batas clipping - gunakan bit tanda resultan pada setiap perbedaan perhitungan untuk menentukan lokasi pada region Tahun Ajaran 06/07 26
Region Outcode 1001 0001 1000 1010 0000 0010 y max 0101 0100 0110 y min xmin xmax Tahun Ajaran 06/07 27
Lihat pada Bit (neg 1) Bit 1 sign( y y) max Bit 2 sign ( y y min ) Bit 3 sign( x x) max Bit 4 sign( x x min ) Tahun Ajaran 06/07 28
Butuh Classify Endpoint Lihat pada C 0 1 Apakah yang bisa kita katakan? C 0 C 0 1 trivial reject Kedua ujung ada di dalam suatu baris atau kolom outside C Tahun Ajaran 06/07 29
Region Outcodes Bit Bit Bit Bit 1 2 3 4 Bit 1 t Atas window Bit 2 t bawah window Bit 3 t kanan window Bit 4 t Kiri window Tahun Ajaran 06/07 30
Classify Endpoint C 0 C 0 1 Titik akhir Clip suatu akhir untuk 0 mungkin saja tidak dalam window C i Tahun Ajaran 06/07 31
Cohen-Sutherland Line Clipping A C D 1001 1000 1010 B 0001 G H 0000 0010 I E Tahun Ajaran 06/07 32 F 0101 0100 0110
Cohen-Sutherland Line Clipping A B C D 1001 1000 1010 0001 G H I 0000 0010 E Tahun Ajaran 06/07 33 F 0101 0100 0110
Penghitungan Outcode Awal OC(D)=1000; OC(A)=0001 1000 0001 0000 OC(E)=0100; OC(I)=1010 0100 1010 0000 Tahun Ajaran 06/07 34
Clip dan lanjutkan Clip lagi batas atas y y max Hitung B. Keep AB Hitung H. Keep EH Tahun Ajaran 06/07 35
Cohen-Sutherland Line Clipping A B G H F E Tahun Ajaran 06/07 36
Clip and Continue Clip lagi batas bawah y y min Skr test dan tolak AB karena OC(A)=0001 and OC(B)=0001; 0001 0001 0001 0 Tolak AB on outcode basis Tahun Ajaran 06/07 37
Penghitungan Outcode OC(H)=0010; OC(E)=0100 0010 0100 0000 Saat hasil adalah 0, proses HE untuk mendapatkan FH Tahun Ajaran 06/07 38
Cohen-Sutherland Line Clipping 1001 0001 1000 1010 G H 0000 0010 F 0101 0100 0110 Tahun Ajaran 06/07 39
Outcode Calculations OC(F)=0000; OC(H)=0010 0010 0100 0000 Saat hasil adalah 0, proses HF untuk mendapatkan GF Tahun Ajaran 06/07 40
Clip and Continue Clip lagi batas kanan x xmax Dapatkan GF kerjakan Tahun Ajaran 06/07 41
Cohen-Sutherland Line Clipping G F Tahun Ajaran 06/07 42
Kapan Algoritma ini bagus? Jika trivally rejects(accepts) banyak kasus Bagus jika window lebar Bagus jika window kecil Sebagai contoh, ini akan bekerja baik dalam kasus yang ekstrim Tahun Ajaran 06/07 43
Masalah Line Clipping y y max ( x 1, y 1 ) ( x0, y0 ) Clipping Segi empat x x min x y y x max min Tahun Ajaran 06/07 44
Clipped Line y y max ( x 1, y 1 ) ( x0, y0 ) Clipping Segiempat x x min x y y x max min Tahun Ajaran 06/07 45
Menggambar Clipped Lines ( x 1, y 1 ) ( x 0, y 0 ) Tahun Ajaran 06/07 46
Clipped Line Punya Slope yang berbeda! m 1 2 m 3 4 Tahun Ajaran 06/07 47
Hati-hati: Pick Right Slope Zoom dari situasi sebelumnya Tahun Ajaran 06/07 48
Clipping lagi x x min x x min NE ( x min, Round ( mx )) min B M midpoint E ( x,( mx B)) min min Clip segiempat y y min Tahun Ajaran 06/07 49
Clipping lagi y y min x x min B A Line clipped y y min y y y y min 1 min 2 Tahun Ajaran 06/07 50 1
Clipping lagi y y min Situasi kompleks Multiple pixels terlibat pada min Ingin semua pixel-pixelsebagai di dalam Analitik, rounding x memberikan A Kita ingin titik B y y Tahun Ajaran 06/07 51
Clipping lagi y y min Gunakan Line y y 1 min 2 Round up untuk integer x terdekat Ditemukan titik B, hasil yang diinginkan Tahun Ajaran 06/07 52