Senin, 17 Desember 2012

Transformasi Objek dalam Grafika Komputer


TRANSFORMASI
Transformasi merupakan suatu metode untuk mengubah lokasi suatu titik pembentukobjek, sehingga objek tersebut mengalami perubahan. Perubahan objek dengan mengubahkoordinat dan ukuran suatu objek disebut dengan transformasi geometri. Dalam Transformasi dasar yang akan dibahas meliputi translasi, skala, dan rotasi

1.      Translasi
Translasi berarti memindahkan objek sepanjang garis lurus dari suatu lokasi koordinattertentu kelokasi yang lain tanpa mengubah bentuk objek. Bila suatu objek terbentuk daribeberapa titik maka bila melakukan translasi akan dikenakan terhadap setiap titikpembentuk objek tersebut. Untuk melakukan translasi dapat menggunakan rumus:
x’ = x + tx
y’ = y + ty
Contoh:
Diketahui titik-titik pembentuk objek segitiga yaiu A(10,10), B(30,10), C(10,30) dengan transformasi vector (10,20) lakukan trnslasi terhadap objek segitiga tersebut:
Titik A
x’A = xA + tx                      y’A = yA + ty
= 10 + 10                              = 10 + 20
= 20                                      = 30
A’(20,30)
Titik B
x’B = xB + tx                      y’B = yB + ty
= 30 + 10                              = 10 + 10
= 40                                      = 20
B’(40,20)
Titik C
x’C = xC + tx                      y’C = yC + ty
= 10 + 10                              = 30 + 20
= 20                                      = 50

2.      Skala
Skala digunakan untuk mengubah ukuran suatu objek, bila pada translasi operasi yangdigunakan adalah penjumlahan sedangkan pada skala operasi yang digunakan adalah perkalian. Untuk melakukan skala dapat menggunakan rumus:
x’ = x * tx
y’ = y * ty
sx dan sy merupakan nilai dari scaling factor terhadap sumbu x dan sumbu y.
Contoh :
Diketahui objek segitiga dengan titik A(10,10), B(30,10), C(10,30) di skala denganscaling factor (3,2).
Titik A
x’A = xA * tx                             y’A = yA * ty
= 10 * 3                                       = 10 * 2
= 30                                             = 20
A’(30,20)
Titik B
x’B = xB * tx                              y’B = yB * ty
= 30 * 3                                       = 10 * 2
= 90                                             = 20
B’(90,20)
Titik C
x’C = xC * tx                              y’C = yC * ty
= 10 * 3                                       = 30 * 2
= 30                                             = 60
C’(30,60)

3.      Rotasi
Rotasi merupakan pemutaran terhadap suatu objek, rotasi dapat dinyatakan dalam bentukmatriks. Nilai matriks untuk melakukan rotasi adalah Rotasi suatu titik terhadap pivot point (xp, yp) menggunakan bentuk trigonometri, secaraumum dapat ditulis sebagi berikut:
Contoh:
Diketahui titik-titik pembentuk objek segitiga yaiu A(10,10), B(30,10), C(10,30) dengan sudut rotasi 300 terhadap titik pusat koordinat cartesian (10,10).
Titik A
X’A = Xp + (XA – Xp)Cos 300 – (YA- YP)Sin 300
= 10 + (10 -10) * 0.9 – (10-10) * 0.5
= 10
Y’A = YP + (XA – XP)Sin 300 + (YA – YP)Cos 300
= 10 + (10 – 10) * 0.5 + (10 – 10) * 0.9
= 10
A’(10,10)

Titik B
X’B = Xp + (XA – Xp)Cos 300 – (YA- YP)Sin 300
= 10 + (30 -10) * 0.9 – (10-10) * 0.5
= 28
Y’B = YP + (XA – XP)Sin 300 + (YA – YP)Cos 300
= 10 + (30 – 10) * 0.5 + (10 – 10) * 0.9
= 20
B’(28,20)
Titik C
X’C = Xp + (XA – Xp)Cos 300 – (YA- YP)Sin 300
= 10 + (10 -10) * 0.9 – (30-10) * 0.5
= 0
Y’C = YP + (XA – XP)Sin 300 + (YA – YP)Cos 300
= 10 + (10 – 10) * 0.5 + (30 – 10) * 0.9
= 28
C’(0,28)


2 komentar:

  1. ada tutorial invers matriknya gak?

    BalasHapus
  2. Coding rotasi gmn ya? Kalo translasi kan glTranslated(0,0,0) kalo rotasi gl apa?

    BalasHapus