KELOMPOK IV JIMMY H LIEM FELIX MEILIANA C SO STEVEN
Scaling adalah perpindahan objek dari titik P ke titik P’, dimana jarak titik P’ adalah m kali titik P. Jadi dengan kata lain, scaling adalah transformasi yang memperbesar atau memperkecil suatu objek.
SEHINGGA DIKETAHUI P’(X’,Y’,Z’) P(X,Y,Z)
MY.Y
MX.X MZ.Z
MATRIKS TRANSFORMASI DARI SCALING
matrix2D_t scalingMTX(float mx, float my, float mz) { matrix2D_t scale=createIdentity(); scale.m[0] [0] = mx; scale.m[1] [1] = my; scale.m[2] [2] = mz; return scale; }
ROTASI DAPAT TERBAGI MENJADI 3 YAITU
ROTASI TERHADAP SUMBU X ROTASI TERHADAP SUMBU Y ROTASI TERHADAP SUMBU Z
Rotasi pada sumbu x adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) berupa pemindahan berputar sebesar sudut terhadap sumbu x, dapat digambarkan sbb : P(X,Y,Z)
P’(X’,Y’,Z’)
SEHINGGA DIKETAHUI :
MATRIXKS ROTASI
matrix3D_t rotationXMTX(float theta) { matrix3D_t rotate=createIdentity(); 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 pada sumbu yadalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) berupa pemindahan berputar sebesar sudut terhadap sumbu y, dapat digambarkan sbb: P’(X’,Y’,Z’)
P(X,Y,Z)
SEHINGGA DIKETAHUI
MATRIKS ROTASI
matrix3D_t rotationYMTX(float theta) { matrix3D_t rotate=createIdentity(); 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 pada sumbu zadalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) berupa pemindahan berputar sebesar sudut terhadap sumbu z, dapat digambarkan sbb: SEHINGGA DIKETAHUI
P(X’,Y’,Z’)
P(X,Y,Z)
MATRIKS ROTASI
matrix3D_t rotationZMTX(float theta) { matrix3D_t rotate=createIdentity(); 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; }
PERKALIAN MATRIKS DAPAT MELIPUTI
PERKALIAN MATRIKS DENGAN MATRIKS PERKALIAN MATRIKS DENGAN VEKTOR
Perkalian ini digunakan untuk operasi transformasi dari objek 3D dan untuk menggabungkan transformasi. Perkalian matriks a dengan matriks b menghasilkan matriks c, yang dirumuskan dengan:
Dimana I dan j bernilai 0-3.
matrix3D_t operator * (matrix3D_t a, matrix3D_t b) { matrix3D_t c; // c=a*b; int i,j,k; for (i=0; i<4; i++) for (j=0; j<4; j++){ c.m[i] [j] = 0; for (k=0; k<4; k++) c.m [i] [j]+= a.m[i] [k] * b.m[k] [j]; } return c; }
Perkalian matriks ini digunakan untuk operasi transformasi dari objek 3D guna menghasilkan vektor baru dari titik objek yang transformasikan. Perkalian matriks a dan vector b menghasilkan vektor c, yang dirumuskan dengan :
Dimana i bernilai 0-3.
vector3D_t operator * (matrix3D_t a, vector3D_t b) { vector3D_t c; // c=a*b; int i,k; for (i=0; i<4; i++) { c.v[i]= 0; for (k=0; k<4; k++) c.v [i] += a.m[i] [k] * b.v[k]; } return c; }