Upload
armin
View
273
Download
8
Embed Size (px)
Citation preview
TRANSFORMASI 3D dan
MATRIKSNYA
Billy Nicholas
Deddy Yudhatama
Elmy Samer
Ferdy Chuandi
Heryanto
Jenis-Jenis Transformasi 3D
• Translasi
• Scaling
• Rotasi Terhadap Sumbu X
• Rotasi Terhadap Sumbu Y
• Rotasi Terhadap Sumbu Z
Matriks Transformasi 3D
Matriks transformasi adalah matriks yang membuat sebuah objek mengalami perubahan, baik berupa perubahan posisi maupun perubahan ukuran. Matriks 3D dinyatakan dalam ukuran 4x4, di mana kolom ke-4 digunakan untuk menyediakan tempat untuk proses translasi.
44434241
34333231
24232221
14131211
aaaa
aaaa
aaaa
aaaa
A
Operasi Transformasi
Transformasi 3D dapat dilakukan dengan menggunakan perkalian antara matriks transformasi dan vektor posisi dari setiap titik pada objek. Hasil transformasi ini masih berupa vektor.
Operasional ini dituliskan dengan :
Vhasil = A . Vposisi
Matriks Identitas (untuk Transformasi 3D)
• Implementasi fungsi untuk membuat matriks identitas :
matriks identitas (void){matriks u;int i, j;for (i=0; i<4; i++) {
for (j=0; j<4; j++) {u.m[ i ][ j ]=0;u.m[ i ][ i ]=1;}
}return u;
}
Translasi (1)
Translasi adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) secara linier. Dalam translasi 3D diperlukan 3 parameter yaitu pemindahan ke arah sumbu x, sumbu y, dan sumbu z.
Translasi (2)
P(x,y)
P’(x’,y’)
dzdx
dy
dz
dy
dx
z
y
x
z
y
x
'
'
'
1000
100
010
001
dz
dy
dx
A
Translasi (3)
• Implementasi Pada Program
matriks translasi(float dx, float dy, float dz) {matriks trans = identitas();trans.m[0][3] = dx;trans.m[1][3] = dy;trans.m[2][3] = dz;return trans;
}
Scaling (1)
Scaling adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’), di mana jarak titik P’ adalah m kali titik P.
Scaling (2)
mx.x
mz.z
my.yx
y
z
1000
000
000
000
mz
my
mx
A
Scaling (3)
• Implementasi Pada Program
matriks scaling(float mx, float my, float mz) {matriks scale = identitas();scale.m[0][0] = mx;scale.m[1][1] = my;scale.m[2][2] = mz;return scale;
}
Rotasi Terhadap Sumbu x (1)
Rotasi adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) yang berupa pemindahan berputar terhadap sumbu x sebesar sudut Ө.
Rotasi Terhadap Sumbu x (2)
P(x,y,z)
P’(x’,y’,z’)
x
z
y
Ө
1000
0)cos()sin(0
0)sin()cos(0
0001
A
Rotasi Terhadap Sumbu x (3)
• Implementasi Pada Program
matriks rotasiX(float theta) {matriks rotate = identitas();float cs = cos(theta);float sn = sin(theta);rotate.m[1][1] = cs;rotate.m[1][2] = -sn;rotate.m[2][1] = sn;rotate.m[2][2] = cs;return rotate;
}
Rotasi Terhadap Sumbu y (1)
Rotasi terhadap sumbu y perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) yang berupa pemindahan berputar terhadap sumbu y sebesar sudut Ө.
Rotasi Terhadap Sumbu y (2)
x
y
z
P(x,y,z)P’(x’,y’,z’)
Ө
1000
0)cos(0)sin(
0010
0)sin(0cos
A
Rotasi Terhadap Sumbu y (3)
• Implementasi Pada Program
matriks rotasiY(float theta) {matriks rotate = identitas();float cs = cos(theta);float sn = sin(theta);rotate.m[0][0] = cs;rotate.m[0][2] = sn;rotate.m[2][0] = -sn;rotate.m[2][2] = cs;return rotate;
}
Rotasi Terhadap Sumbu z (1)
Rotasi terhadap sumbu z adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’), yang berupa pemindahan berputar terhadap sumbu z sebesar sudut Ө.
Rotasi Terhadap Sumbu z (2)
x
y
z
ӨP(x,y,z)
P’(x’,y’,z’)
1000
0100
00)cos()sin(
00)sin(cos
A
Rotasi Terhadap Sumbu z (3)
• Implementasi Pada Program
matriks rotasiZ(float theta) {matriks rotate = identitas();float cs = cos(theta);float sn = sin(theta);rotate.m[0][0] = cs;rotate.m[0][1] = -sn;rotate.m[1][0] = sn;rotate.m[1][2] = cs;return rotate;
}
Thank You
ありがとうございました감사합니다Спасибо
ขอบคุ�ณ謝謝您
σε ευχαριστώ
tänan
धन्यवा�दTerima Kasih