Grafik Komputer : Transformasi Geometrik 2 Dimensi - ivan_maurits ...

16 downloads 3532 Views 115KB Size Report
Grafik Komputer : Transformasi Geometri 2D. 1/11. Grafik Komputer dan Pengolahan Citra. Grafik Komputer : Transformasi Geometri. 2 Dimensi. Universitas ...
Grafik Komputer dan Pengolahan Citra

Grafik Komputer :

Transformasi Geometri 2 Dimensi

Universitas Gunadarma 2006

Grafik Komputer : Transformasi Geometri 2D

1/11

Grafik Komputer dan Pengolahan Citra

Matriks dan Transformasi Geometri • Representasi umum suatu Matriks adalah :

⎡ M11 M12 ⎢ M21 M22 M=⎢ ⎢ M M ⎢ ⎣Mm1 Mm2

dimana pada Matriks Mrc, r adalah kolom dan c baris.

• Suatu Vektor direpresentasikan sebagai matriks kolom

L M1n ⎤ L M2n ⎥⎥ O M ⎥ ⎥ L Mmn ⎦

⎡ v1 ⎤ : v = ⎢⎢ v 2⎥⎥ ⎢⎣ v 3 ⎥⎦

• Perkalian Matriks dan Vektor dapat digunakan untuk transformasi linier suatu vektor. M M ⎤⎡v ⎤ ⎡M 11

M • v = ⎢⎢ M 21 ⎢⎣ M 31

12

M 22 M 32

x ⎡a ⎤ ⎥ ⎢ ⎥ M 23 ⎥ ⎢ v y ⎥ = ⎢⎢ b ⎥⎥ M 33 ⎥⎦ ⎢⎣ v z ⎥⎦ ⎢⎣ c ⎥⎦ 13

• Suatu sekuens transformasi linier berkorespondensi dengan matriks korespondennya : M M M v = v 1

2

3 old

new

dimana, Vektor hasil di sisi kanan dipengaruhi matriks transformasi linier dan vektor awal.

• Jadi….. Suatu Transformasi Linier : – Memetakan suatu vektor ke vektor lain – Menyimpan suatu kombinasi linier

Grafik Komputer : Transformasi Geometri 2D

2/11

Grafik Komputer dan Pengolahan Citra

TRANSLASI •

Translasi adalah suatu pergerakan/perpindahan semua titik dari objek pada suatu jalur lurus sehingga menempati posisi baru.



Jalur yang direpresentasikan oleh vektor disebut Translasi atau Vektor Geser.



Pergeseran tersebut dapat ditulis : ⎢



Untuk merepresentasikan translasi dalam matriks 3x3 kita dapat menulisnya : ⎡1 0 Tx ⎤ ⎡ x ⎤ ⎡ x + Tx ⎤ ⎡1 0 Tx ⎤ ⎢ ⎥⎢ ⎥ ⎢ ⎢ ⎥ ⎥ Translation = ⎢0 1 Ty ⎥ T 0 1 y ⎥ ⎢ y ⎥ = ⎢ y + Ty ⎥ ⎢ ⎢0 0 1 ⎥ ⎢0 0 1 ⎥ ⎢⎣ 1 ⎥⎦ ⎢⎣ 1 ⎥⎦ ⎣ ⎦ ⎣ ⎦

⎡a b ⎤ ⎡ x ⎤ ⎡ x'⎤ ⎥ ⎢ y ⎥ = ⎢ y '⎥ c d ⎣ ⎦⎣ ⎦ ⎣ ⎦

Tx = 2 Ty = 1

Grafik Komputer : Transformasi Geometri 2D

3/11

Grafik Komputer dan Pengolahan Citra

ROTASI •

Rotasi adalah mereposisi semua titik dari objek sepanjang jalur lingkaran dengan pusatnya pada titik pivot.

x’ = x cos(θ) - y sin(θ) y’ = x sin(θ) + y cos(θ)

(x’, y’) (x, y)

θ

φ

x = r cos (Φ) y = r sin (Φ) x’ = r cos (Φ + θ) y’ = r sin (Φ + θ) Identitas Geometri… x’ = r cos(Φ) cos(θ) – r sin(Φ) sin(θ) y’ = r sin(Φ) sin(θ) + r cos(Φ) cos(θ) Substitusi… x’ = x cos(θ) - y sin(θ) y’ = x sin(θ) + y cos(θ)



Untuk memudahkan perhitungan dapat digunakan matriks:

⎡ x'⎤ ⎡cos(θ ) − sin (θ )⎤ ⎡ x ⎤ ⎢ y '⎥ = ⎢ sin (θ ) cos(θ ) ⎥ ⎢ y ⎥ ⎦⎣ ⎦ ⎣ ⎦ ⎣

Dimana : -

sin(θ) dan cos(θ) adalah fungsi linier dari θ,

- x’ kombinasi linier dari x dan y – y’ kombinasi linier dari x and y Grafik Komputer : Transformasi Geometri 2D

4/11

Grafik Komputer dan Pengolahan Citra

SKALA • •

Penskalaan koordinat dimaksudkan untuk menggandakan setiap komponen yang ada pada objek secara skalar. Keseragaman penskalaan berarti skalar yang digunakan sama untuk semua komponen objek.

×2



Ketidakseragaman penskalaan berarti skalar yang digunakan pada objek adalah tidak sama.

X × 2, Y × 0.5



Operasi Skala :

⎡ x'⎤ ⎡ax ⎤ ⎢ y '⎥ = ⎢by ⎥ ⎣ ⎦ ⎣ ⎦

atau dalam bentuk matriks :⎡ x'⎤ = ⎡a

⎢ y '⎥ ⎣ ⎦

0⎤ ⎡ x ⎤ ⎢0 b⎥ ⎢ y ⎥ ⎣ ⎦⎣ ⎦

Grafik Komputer : Transformasi Geometri 2D

5/11

Grafik Komputer dan Pengolahan Citra

CONTOH • Translasi :

Y

6 ⎡4⎤ ⎢4⎥ ⎣ ⎦

5 4

dx = 2 dy = 3

3 2

⎡2⎤ ⎢1 ⎥ ⎣ ⎦

1 0

Y

• Skala : sx = 3 sy = 2

1

2

3

4

5

6

7

8

9

10

X

6 5 4 3 2 ⎡2⎤ ⎢1 ⎥ ⎣ ⎦

1

⎡6 ⎤ ⎢2⎥ ⎣ ⎦

⎡3⎤ ⎢1 ⎥ ⎣ ⎦

⎡9 ⎤ ⎢2⎥ ⎣ ⎦

0 1

• Rotasi :

Y

2

3

4

5

6

7

8

9

7

8

9

10

X

6

θ=

5

π 6

4 3 2

θ

1 0 1

2

3

4

5

6

Grafik Komputer : Transformasi Geometri 2D

10

X 6/11

Grafik Komputer dan Pengolahan Citra

Koordinat Homogen •

Koordinat Homogen adalah representasi koordinat 2 dimensi dengan 3 vektor.

⎡ x⎤ x ⎡ ⎤ homogeneous coords ⎢ ⎥ ⎢ y ⎥ ⎯⎯ ⎯ ⎯ ⎯⎯→ ⎢ y ⎥ ⎣ ⎦ ⎢⎣ 1 ⎥⎦ R otation

⎡ cos( θ ) = ⎢⎢ sin( θ ) ⎢⎣ 0

− sin( θ ) cos( θ ) 0

0⎤ 0 ⎥⎥ 1 ⎥⎦

⎡ a 0 0⎤ Scale = ⎢⎢ 0 b 0⎥⎥ ⎢⎣ 0 0 1⎥⎦

⎡1 0 Tx ⎤ ⎢ ⎥ Translation = ⎢0 1 Ty ⎥ ⎢0 0 1 ⎥ ⎣ ⎦

Grafik Komputer : Transformasi Geometri 2D

7/11

Grafik Komputer dan Pengolahan Citra

Transformasi Gabungan (1/3) •

Kita dapat merepresentasikan 3 transformasi dalam sebuah matriks tunggal. – – –



Tranformasi Gabungan : – – –



Operasi yang dilakukan adalah perkalian matriks Tidak ada penanganan khusus ketika mentransformasikan suatu titik : matriks • vector Transformasi gabungan : matriks • matriks

Rotasi sebagai titik perubahan : translasi – rotasitranslai Skala sebgai titik perubahan : translasi – skalatranslasi Perubahan sistem koordinat : translasi – rotasi – skala

Langkah yang dilakukan : 1. Urutkan matriks secara benar sesuai dengan transformasi yang akan dilakukan. 2. Kalikan matriks secara bersamaan 3. Simpan matriks hasil perkalian tersebut (2) 4. Kalikan matriks dengan vektor dari verteks 5. Hasilnya, semua verteks akan ter-transformasi dengan satu perkalian matriks.

Grafik Komputer : Transformasi Geometri 2D

8/11

Grafik Komputer dan Pengolahan Citra

Transformasi Gabungan (2/3) •

Perkalian Matriks bersifat Asosiatif : ⎛ ⎡a b ⎤ ⎡ e ⎜⎢ ⎜ c d ⎥ • ⎢g ⎦ ⎣ ⎝⎣

f ⎤⎞ ⎡i ⎟• h ⎥⎦ ⎟⎠ ⎢⎣k

j ⎤ ⎡ae + bg = l ⎥⎦ ⎢⎣ ce + dg

af + bh⎤ ⎡ i • cf + dh ⎥⎦ ⎢⎣k

⎡aei + bgi + afk + bhk =⎢ ⎣ cei + dgi + cfk + dhk ⎡a b ⎤ ⎛ ⎡ e ⎢ c d ⎥ • ⎜⎜ ⎢ g ⎣ ⎦ ⎝⎣

f ⎤ ⎡i • h ⎥⎦ ⎢⎣k

j ⎤ ⎞ ⎡a b ⎤ ⎡ ei + fk ⎟= • l ⎥⎦ ⎟⎠ ⎢⎣ c d ⎥⎦ ⎢⎣ gi + hk

aej + bgj + afl + bhl ⎤ cej + dgj + cfl + dhl ⎥⎦

ej + fl ⎤ gj + hl ⎥⎦

⎡aei + afk + bgi + bhk =⎢ ⎣ cei + cfk + dgi + dhk



j⎤ l ⎥⎦

aej + afl + bgj + bhl ⎤ cej + cfl + dgj + dhl ⎥⎦

Perkalian Matriks tidak bersifat Komutatif ⎡a b ⎤ ⎡ e ⎢c d ⎥ • ⎢ g ⎣ ⎦ ⎣

⎡e ⎢g ⎣

f ⎤ ⎡ae + bg = h ⎥⎦ ⎢⎣ ce + dg

f ⎤ ⎡a b ⎤ ⎡ ea + fc • = h ⎥⎦ ⎢⎣ c d ⎥⎦ ⎢⎣ ga + hc

af + bh ⎤ cf + dh ⎥⎦

eb + fd ⎤ gb + hd ⎥⎦

Grafik Komputer : Transformasi Geometri 2D

9/11

Grafik Komputer dan Pengolahan Citra

Transformasi Gabungan (3/3) Contoh : • Jika terdapat objek yang tidak terletak di titik pusat, maka bila akan dilakukan pen-skala-an dan rotasi,kita perlu mentranslasikan objek tersebut sebelumnya ke titik pusat baru kemudian dilakukan pen-skala-an atau rotasi, dan terakhir dikembalikan lagi ke posisi semula. House ( H )



T ( dx , dy ) H

R (θ )T ( dx , dy ) H

T ( − dx , − dy ) R (θ )T ( dx , dy ) H

Rotasikan sebuah segment garis sebesar 45o dengan endpoint pada titik a ! –

Posisi awal a

a –

a



Rotasi 45o



Translasi ke titik pusat

a

a Translasi ke titik semula

⎡1 0 − 3⎤ ⎡cos(45) − sin(45) 0⎤ ⎡1 0 3⎤ ⎡ a x ⎤ ⎡ a ' x ⎤ ⎢0 1 0 ⎥ ⎢ sin(45) cos(45) 0⎥ ⎢0 1 0⎥ ⎢a ⎥ = ⎢a ' ⎥ ⎥⎢ ⎥⎢ y ⎥ ⎢ y ⎥ ⎢ ⎥⎢ ⎢⎣0 0 1 ⎥⎦ ⎢⎣ 0 0 1⎥⎦ ⎢⎣0 0 1⎥⎦ ⎢⎣ 1 ⎥⎦ ⎢⎣ 1 ⎥⎦

Grafik Komputer : Transformasi Geometri 2D

10/11

Grafik Komputer dan Pengolahan Citra

Transformasi Lainnya • Refleksi ⎡−1 0 0⎤ ⎢ 0 −1 0⎥ ⎥ ⎢ ⎢⎣ 0 0 1⎥⎦

⎡1 0 0⎤ ⎢0 −1 0⎥ ⎢ ⎥ ⎢⎣0 0 1⎥⎦

⎡0 1 0⎤ ⎢1 0 0⎥ ⎥ ⎢ ⎣⎢0 0 1⎥⎦

⎡−1 0 0⎤ ⎢ 0 1 0⎥ ⎥ ⎢ ⎢⎣ 0 0 1⎥⎦

• Shear Arah x ⎡1 shx 0⎤ ⎢0 1 0⎥ ⎥ ⎢ ⎢⎣0 0 1⎥⎦

Arah y ⎡ 1 ⎢ sh ⎢ y ⎢⎣ 0

0 0⎤ 1 0 ⎥⎥ 0 1 ⎥⎦

Grafik Komputer : Transformasi Geometri 2D

11/11