Aplikasi Transformasi Linier di dalam Computer Graphics
Oleh: Rinaldi Munir
Program Studi InformatikaSekolah Teknik Elektro dan Informatika
ITB
1
Aplikasi Transformasi Linier di dalamComputer Graphics• Definisi: Jika T : V W adalah sebuah fungsi dari ruang vektor V ke
ruang vektor W, maka T dinamakan transformasi linier jika
(i) T(u + v) = T(u) + T(v) untuk semua vektor u dan v di dalam V
(ii) T(ku) = kT(u) untuk semua vektor u di dalam V
• Transformasi linier T : Rn Rm dapat dinyatakan sebagai sebuahperkalian matriks
T(x) = Ax
2
Jenis-Jenis Tranformasi Linier 2D (T : R2 R2)
3Sumber: http://mathforum.org/mathimages/imgUpload/thumb/Tranformations4.png/400px-Tranformations4.png
Koordinat Homogen
• Di dalam grafika computer, sebuah gambar dapat dibangun dari darisekumpulan bentuk terdefinisi (kotak, lingkaran, segitiga, dll).
• Tiap bentuk mungkin diskalakan, dirotasi, atau ditranslasi ke posisigambar yang sebenarnya.
• Agar perhitungan koordinat akhir dapat langsung dihitung darikoordinat awal dengan efisien, maka diperlukan sebuah sistemkoordinat yang homogen
• Pada koordinat homogen, setiap titik direpresentasikan dengan tigaangka:
(x, y) (xw, yw, w) dengan syarat w 09
10
1 0
0 1 , ,
1 0 0 1 1
x
y x y
x t x
y t y t t
P T PTranslasi 2D
cos sin 0
sin cos 0 ,
1 0 0 1 1
x x
y y
P R PRotasi 2D
0 0
0 0 , ,
1 0 0 1 1
x
y x y
x S x
y S y S S
P S PPenskalaan 2D
1 1 1
1 0 cos sin 0 1 0 0
0 1 , sin cos 0 , 0 1 0
0 0 1 0 0 1 0 0 1
x x
y y
t S
t S
T R S
Transformasi inverse:
11
2 1 2 1 P M M P M M P M PKomposisi tranformasi:
2 2 1 1 2 2 1 1
2 1 1 2
2 1 1 2
2 2 1 1 1 2 1 2
, , , ,
1 0 1 0 1 0
0 1 0 1 0 1
0 0 1 0 0 1 0 0 1
, , ,
x y x y x y x y
x x x x
y y y y
x y x y x x y y
t t t t t t t t
t t t t
t t t t
t t t t t t t t
P T T P T T P
T T T
Komposisi translasi:
2 1 2 1
2 1 1 2
1 2
P R R P R R P
R R R
P R P
Komposisi rotasi:
12
2 1 1 2
2 1 1 2
2 2 1 1 1 2 1 2
0 0 0 0 0 0
0 0 0 0 0 0
0 0 1 0 0 1 0 0 1
, , ,
x x x x
y y y y
x y x y x x y y
S S S S
S S S S
S S S S S S S S
S S SKomposisi
penskalaan:
13
Move to origin Rotate Move back
1 0 cos sin 0 1 0
0 1 sin cos 0 0 1
0 0 1 0 0 1 0 0 1
cos sin 1 cos sin
sin cos 1 cos sin
0 0 1
r r
r r
r r
r r
x x
y y
x y
y x
,r rx y
General 2D Rotation
April 2010 14
General 2D Scaling
Move to origin Scale Move back
0 11 0 0 0 1 0
0 1 0 0 0 1 0 1
0 0 1 0 0 1 0 0 1 0 0 1
x f xf x f
f y f y f y
S x Sx S x
y S y S y S
,f fx y
15
Translation
, ,x y z
, ,x y z
x
y
z
x
y
z
x x t
y y t
z z t
Transformation 3D
1 0 0
0 1 0
0 0 1
1 0 0 0 1 1
x
y
z
x t x
y t y
z t z
Mirip dengan transformasi 2D. Menggunakan matriks 4x4
16
Penskalaan 3D
x
y
z x
y
z
x
y
z
x x S
y y S
z x S
0 0 0
0 0 0
0 0 0
1 0 0 0 1 1
x
y
z
x S x
y S y
z S z
P S P
17
Sumber: http://www.codinglabs.net/public/contents/article_world_view_projection_matrix/images/order_dependency.png