21
TRANSFORMASI 3D dan MATRIKSNYA Billy Nicholas Deddy Yudhatama Elmy Samer Ferdy Chuandi Heryanto

TI-1-Kelompok-4

  • Upload
    armin

  • View
    273

  • Download
    8

Embed Size (px)

Citation preview

Page 1: TI-1-Kelompok-4

TRANSFORMASI 3D dan

MATRIKSNYA

Billy Nicholas

Deddy Yudhatama

Elmy Samer

Ferdy Chuandi

Heryanto

Page 2: TI-1-Kelompok-4

Jenis-Jenis Transformasi 3D

• Translasi

• Scaling

• Rotasi Terhadap Sumbu X

• Rotasi Terhadap Sumbu Y

• Rotasi Terhadap Sumbu Z

Page 3: TI-1-Kelompok-4

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

Page 4: TI-1-Kelompok-4

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

Page 5: TI-1-Kelompok-4

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;

}

Page 6: TI-1-Kelompok-4

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.

Page 7: TI-1-Kelompok-4

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

Page 8: TI-1-Kelompok-4

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;

}

Page 9: TI-1-Kelompok-4

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.

Page 10: TI-1-Kelompok-4

Scaling (2)

mx.x

mz.z

my.yx

y

z

1000

000

000

000

mz

my

mx

A

Page 11: TI-1-Kelompok-4

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;

}

Page 12: TI-1-Kelompok-4

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 Ө.

Page 13: TI-1-Kelompok-4

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

Page 14: TI-1-Kelompok-4

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;

}

Page 15: TI-1-Kelompok-4

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 Ө.

Page 16: TI-1-Kelompok-4

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

Page 17: TI-1-Kelompok-4

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;

}

Page 18: TI-1-Kelompok-4

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 Ө.

Page 19: TI-1-Kelompok-4

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

Page 20: TI-1-Kelompok-4

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;

}

Page 21: TI-1-Kelompok-4

Thank You

ありがとうございました감사합니다Спасибо

ขอบคุ�ณ謝謝您

σε ευχαριστώ

tänan

धन्यवा�दTerima Kasih