KLIPING PTIK FT UNM 1 Definisi Alasan dilakukannya

  • Slides: 23
Download presentation
KLIPING PTIK FT UNM 1

KLIPING PTIK FT UNM 1

Definisi Alasan dilakukannya kliping : - Menghindari perhitungan koordinat pixel yang rumit (karenanya kliping

Definisi Alasan dilakukannya kliping : - Menghindari perhitungan koordinat pixel yang rumit (karenanya kliping dilakukan sebelum rasterisasi). - Interpolasi parameter l Sarana pemotong objek disebut jendela kliping. l Fungsi jendela kliping adalah untuk mengidentifikasi objek yang akan di-clipping dan memastikan bahwa data yang diambil hanya yang terletak di dalam jendela clipping. l Bentuk jendela kliping : - Segi empat, segi tiga - Lingkaran atau ellips - Polygon dan lain-lain. l 2

Apa Yang Diinginkan Dari Kliping (xwmin, ywmax) Clipping window (xwmax, ywmax) (xwmin, ywmin) (xwmax,

Apa Yang Diinginkan Dari Kliping (xwmin, ywmax) Clipping window (xwmax, ywmax) (xwmin, ywmin) (xwmax, ywmin) 3

Langkah-langkah Dasar l Tentukan apakah baris memerlukan Kliping 4

Langkah-langkah Dasar l Tentukan apakah baris memerlukan Kliping 4

Kliping Titik l l l Untuk menentukan letak suatu titik di dalam jendela kliping,

Kliping Titik l l l Untuk menentukan letak suatu titik di dalam jendela kliping, digunakan ketentuan : xmin < xmax dan ymin < ymax 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 w 2 buah titik P 1(x, y) dan P 2(x, y) dengan : – P 1 terletak di dalam jendela kliping, karena P 1. x < Xmax dan P 1. x > Xmin serta P 1. y < Ymax dan P 1. y > Ymin – P 2 terletak di luar jendela kliping, karena P 2. x < Xmin walaupun P 2. x < Xmax, P 2. y < Ymax dan P 2. y > Ymin 5

Kliping Garis l Kliping sebuah garis P 1 dan P 2 dengan jendela L,

Kliping Garis l Kliping sebuah garis P 1 dan P 2 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 (P 1’–P 2’), sedangkan garis yang terletak di luar jendela dibuat tidak tampak (P 1 –P 1’dan P 2 –P 2’) l 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 6

Kliping Garis (Lanjt) l l Kondisi garis terhadap jendela kliping : – Invisible: Tidak

Kliping Garis (Lanjt) l l 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 dengan bagian atas, bawah, kiri atau kanan – Vollpartial: Terpotong penuh oleh jendela kliping. Garis melintasi jendela kliping Algoritma Umum Kliping 7

Kliping Garis Cohen-Sutherland l Hubungan antara sebuah garis dengan jendela kliping dapat ditulis seperti

Kliping Garis Cohen-Sutherland l Hubungan antara sebuah garis dengan jendela kliping dapat ditulis seperti hubungan antara titik awal dan titik akhir sebuah garis dengan jendela kliping : P 1(x, y) dan P 2(x, y) ⇔W(L, R, T, B) l Untuk menentukan relasi tersebut diperlukan suatu struktur data pembantu yang disebut pointcode. Dengan pointcode kita dapat mengidentifikasi posisi titik terhadap jendela kliping. l Nilai untuk pointcode l, r, t dan b adalah 1 dan 0 yang merupakan nilai logika yang dapat dimengerti dengan nilai true dan false. l Suatu titik yangvisible berarti titik tersebut terletak di dalam jendela kliping, dan invisible jika terletak di luar jendela kliping. l 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. 8

Kliping Garis Cohen-Sutherland (Lanjt) l Berdasarkan urutan kode, pointcode ditentukan : l Titik terletak

Kliping Garis Cohen-Sutherland (Lanjt) l Berdasarkan urutan kode, pointcode ditentukan : l 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 pointcode. Arti 9 l

Kliping Garis Cohen-Sutherland (Lanjt) l Visibilitas suatu garis tergantung dari pointcode pada kedua titik

Kliping Garis Cohen-Sutherland (Lanjt) l Visibilitas suatu garis tergantung dari pointcode pada kedua titik yang membentuk garis tersebut, yaitu P 1 dan P 2. - Jika P 1 & P 2 di dalam jendela kliping maka garis adalah visible - Jika salah satu dari titik P 1 atau P 2 di luar jendela kliping, artinya garis adalah halfpartial - Jika titik P 1 & P 2 di luar jendela kliping, artinya garis adalah invisible. - Jika P 1 dan P 2 melintasi jendela kliping, artinya garis adalah vollpartial l Algoritma Kliping Cohen-Sutherland : 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 tidak 0000, maka buang garis tersebut (tolak) 3. 2. Jika hasilnya 0000, 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. 10 1.

Kliping Garis Cohen-Sutherland (Lanjt) l l l Daerah titik persinggungan dapat dilihat dari nilai

Kliping Garis Cohen-Sutherland (Lanjt) l l l 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 Persinggungan antara batas ATAS dan BAWAH 11

Kliping Garis Cohen-Sutherland Top-Left Bottom-Left Top-Right Inside Right Bottom TBRL Bottom-Right 12

Kliping Garis Cohen-Sutherland Top-Left Bottom-Left Top-Right Inside Right Bottom TBRL Bottom-Right 12

Kliping Garis Cohen-Sutherland (Lanjt) B 1 1001 D 1 1000 C 1 1010 B

Kliping Garis Cohen-Sutherland (Lanjt) B 1 1001 D 1 1000 C 1 1010 B 2 A 2 0001 A 1 0000 0010 0100 0110 D 2 C 2 0101 13

Contoh 1001 1000 1010 algorithm A 2 0001 0101 A 1 0000 0010 0100

Contoh 1001 1000 1010 algorithm A 2 0001 0101 A 1 0000 0010 0100 0110 1. A 1=0000, A 2=0000 2. (both 0000) – Yes -> accept & draw 3. 3. 1 3. 2. 2 3. 2. 3 3. 2. 4 14

Contoh (Lanjt) B 1 1000 1010 B 2 0001 0000 0010 0101 0100 0110

Contoh (Lanjt) B 1 1000 1010 B 2 0001 0000 0010 0101 0100 0110 algorithm Garis B 1 –B 2 1. B 1=1001, B 2=1010 2. (both 0000) – No 3. AND Operation B 1 1001 B 2 1010 Result 1000 3. 1 (not 0000) –Yes reject 15

Contoh (Lanjt) 1001 1000 1010 C 1 0001 C 1’ 0000 0010 0100 0110

Contoh (Lanjt) 1001 1000 1010 C 1 0001 C 1’ 0000 0010 0100 0110 C 2 0101 algorithm 1. C 1=0001, C 2=0000 2. (both 0000) – No 3. AND Operation result 0000 3. 1(not 0000) - No 3. 2. (0000)-Yes 3. 2. 1. choose C 1 3. 2. 2. Intersection point, C 1’ at LEFT 3. 2. 3 C 1 <- C 1’ C 1 = 0000 3. 2. 4 repeat 2 2. (both 0000) – Yes -> accept & draw 16

Contoh (Lanjt) D 1 1000 1010 0001 0000 0010 0101 0100 0110 D 2

Contoh (Lanjt) D 1 1000 1010 0001 0000 0010 0101 0100 0110 D 2 algorithm 1. D 1=1001, D 2=0110 2. (both 0000) – No 3. AND Operation result 0000 3. 1(not 0000) - No 3. 2. (0000)-Yes 3. 2. 1. choose D 1 3. 2. 2. Intersection point, D 1’ at TOP 3. 2. 3 C 1 <- C 1’ D 1’ = 1000 3. 2. 4 repeat 2 17

Contoh (Lanjt) 1001 D 1’ 1000 1010 0001 0000 0010 0101 0100 0110 D

Contoh (Lanjt) 1001 D 1’ 1000 1010 0001 0000 0010 0101 0100 0110 D 2 algorithm 1. D 1’=1000, D 2=0110 2. (both 0000) – No 3. AND Operation result 0000 3. 1(not 0000) - No 3. 2. (0000)-Yes 3. 2. 1. choose D 1’ 3. 2. 2. Intersection point, D 1” at TOP 3. 2. 3 C 1 <- C 1’ D 1” = 0000 3. 2. 4 repeat 2 18

Contoh (Lanjt) 1001 1000 1010 D 1” 0001 0000 0010 0101 0100 0110 D

Contoh (Lanjt) 1001 1000 1010 D 1” 0001 0000 0010 0101 0100 0110 D 2 algorithm 1. D 1”=0000, D 2=0110 2. (both 0000) – No 3. AND Operation result 0000 3. 1(not 0000) - No 3. 2. (0000)-Yes 3. 2. 1. choose D 2’ 3. 2. 2. Intersection point, D 2’ at BOTTOM 3. 2. 3 D 2 <- D 2’ = 0100 3. 2. 4 repeat 2 19

Contoh (Lanjt) 1001 1000 1010 D 1” 0001 0000 0010 0101 0100 0110 D

Contoh (Lanjt) 1001 1000 1010 D 1” 0001 0000 0010 0101 0100 0110 D 2’ algorithm 1. D 1”=0000, D 2’=0100 2. (both 0000) – No 3. AND Operation result 0000 3. 1(not 0000) - No 3. 2. (0000)-Yes 3. 2. 1. choose D 2’ 3. 2. 2. Intersection point, D 2’ at BOTTOM 3. 2. 3 D 2 <- D 2’ = 0100 3. 2. 4 repeat 2 20

Contoh (Lanjt) 1001 1000 1010 D 1” 0001 0000 0101 0100 0010 D 2”

Contoh (Lanjt) 1001 1000 1010 D 1” 0001 0000 0101 0100 0010 D 2” 0110 algorithm 1. D 1”=0000, D 2’=0100 2. (both 0000) – No 3. AND Operation result 0000 3. 1(not 0000) - No 3. 2. (0000)-Yes 3. 2. 1. choose D 2’ 3. 2. 2. Intersection point, D 2’ at BOTTOM 3. 2. 3 D 2 <- D 2’ = 0100 3. 2. 4 repeat 2 21

Kliping Poligon Sutherland-Hodgeman Kliping poligon lebih kompleks dibandingkan kliping garis : - Input: poligon

Kliping Poligon Sutherland-Hodgeman Kliping poligon lebih kompleks dibandingkan kliping garis : - Input: poligon - Output: poligon asli, poligon baru, atau lainnya l Contoh : Apa yang terjadi apabila pada suatu segitiga dilakukan kliping ? Kemungkinan hasilnya : l l Segitiga segitiga segiempat segitiga segilima 22

Kliping Poligon Sutherland-Hodgeman l Ide Dasar Kliping Poligon : - Perhatikan setiap edge pada

Kliping Poligon Sutherland-Hodgeman l Ide Dasar Kliping Poligon : - Perhatikan setiap edge pada setiap arah pandang. - Klip/potong poligon dengan persamaan edge. - Lakukan pada semua edge, hingga poligon tsb secara penuh ter-klip/terpotong. 23