Bab 4 Transformasi2D
Bab 4 Transformasi2D
Materi
Struktur titik dan vektor
Perubahan struktur titik ke vektor
Perubahan struktur vektor ke titik
Translasi
Scalling
Rotasi
Perkalian Matrik
Komposisi Transformasi
Struktur Titik dan Vektor
typedef struct {
Struktur data float x,y;
dari titik 2D } point2D_t;
typedef struct {
Struktur data float v[3];
dari vektor 2D } vector2D_t;
Perubahan Titik dan Vektor
titik 2D
v[1] x
Point2Vector v[2] y Vector2Point
v[3] 1
vektor 2D
Point2Vector
Fungsi ini digunakan untuk memindahkan tipe data titik
menjadi tipe data vektor. Hal ini sangat berguna untuk
operasional matrik yang digunakan dalam melakukan
transformasi dan pengolahan matrik pada grafika komputer.
Translasi
Scaling
Rotasi
Matrik Transformasi 2D
Matrik transformasi adalah matrik yang
membuat sebuah obyek mengalami perubahan
baik berupa perubahan posisi, maupun
perubahan ukuran.
Matrik transformasi 2D dinyatakan dalam
ukuran 3x3, dimana kolom ke-3 digunakan untuk
menyediakan tempat untuk proses translasi.
a11 a12 a13
a a22 a23
21
a31 a32 a33
Translasi
Translasi adalah perpindahan obyek dari titik P ke
titik P secara linier.
x = x + dx
P(x,y)
y = y + dy
Model Matrik:
dy
x' x dx
P(x,y) dx y ' = y + dy
Matrik Transformasi
dari Translasi 2D
Proses translasi
dengan
v1 1 0 d x v1
menggunakan v = 0 1 d v
definisi vektor2D
dapat dituliskan
2 y 2
dengan v3 0 0 1 v3
1 0 d x Matrik
0 1 d Transformasi
y dari
0 0 1 Translasi
Implementasi Matrik
Tranformasi Untuk Translasi
matrix2D_t createIdentity(void) {
matrix2D_t u;
int i,j;
for (i=0;i<3;i++) {
for(j=0;j<3;j++) u.m[i][j]=0.;
u.m[i][i]=1.;
}
return u;
}
Scaling
Scaling m adalah perpindahan obyek dari titik P ke
titik P, dimana jarak titik P adalah m kali titik P
y
P(x,y)
x = mx x
y = my y
P(x,y) my.y
mx.x x
Matrik Transformasi
dari Scaling 2D
Proses scaling
dengan
v1 mx 0 0 v1
menggunakan v = 0 my
0 v2
definisi vektor2D
dapat dituliskan
2
dengan v3 0 0 1 v3
mx 0 0 Matrik
0 my 0 Transformasi
dari Scaling
0 0 1
Implementasi Matrik
Tranformasi Untuk Scaling
x
Matrik Transformasi
dari Rotasi
Proses Rotasi
dengan v1 cos( ) sin( ) 0 v1
menggunakan v = sin( ) cos( ) 0 v
definisi vektor2D 2 2
dapat dituliskan v3 0 0 1 v3
dengan
Rotasi()
Translasi(d,0)
Komposisi transformasi dinyatakan dengan :
Rotasi().Translasi(d,0)
Contoh Komposisi Tranformasi
Rotasi()
Translasi(d,0)
Translasi(d,0). Rotasi()
Tugas 1 Grafika Komputer
Menggambarkan Orbit Bumi dan Bulan
Tugas 2 Grafika Komputer
Menggambar Gerakan Tutup Gelas Terbuka