Perubahan Struktur Data Struktur data titik 3D digunakan untuk keperluan menggambar objek ke layar komputer karena nilainya sudah disesuaikan dengan sistem koordinat pada layar komputer. Sedangkan struktur data vektor digunakan untuk melakukan transformasi terhadap objek sehingga bila objek gambar ditransformasikan
Hal yang harus dilakukan adalah: • Mengubah struktur data titik ke struktur data vektor • Menghitung transformasi • Mengubah struktur data vektor ke struktur data titik • Mengambar objek
Fungsi Point2Vector Implementasi dari fungsi Point2Vector adalah sebagai berikut: vector3D_t point2Vector(point3D_t pnt) { vector2D_t vec; vec.v[0]=pnt.x; vec.v[1]=pnt.y; vec.v[2]=pnt.z; }
Fungsi Vector2 Point Implementasi dari fungsi Vector2point adalah sebagai berikut: point3D_t vector2point(vector3D_t vec) { point3D_t pnt; pnt.x=vec.v[0]; pnt.y=vec.v[1]; pnt.z=vec.v[2]; }
Fungsi Vector2Point2D Implementasi dari fungsi Vector2point2D adalah sebagai berikut: point2D_t vector2point2D(vector2D_t vec) { point2D_t pnt; Pnt.x=vec.v[0]; Pnt.y=vec.v[1]; }
Translasi Translasi adalah perpindahan objek dari titik P(x,y) ke titik P’(x’,y’) secara linier
x’=x+dx y’=y+dy z’=z+dz atau dapat dituliskan dengan:
Proses translasi dengan menggunakan operasi matriks dapat ditulis dengan:
Sehingga matriks transformasi dari translasi:
Implementasi fungsi untuk membuat matriks transformasi translasi adalah sebagai berikut: matrix3D_t translationMTX(float dx, float dy, float dz) { matrix3D_t trans=createIdentity(); trans.m[0][3]=dx; trans.m[1][3]=dy; trans.m[2][3]=dz; return trans; }
Dalam implementasinya, fungsi transformasi di atas mengandung fungsi createIdentity(). Fungsi ini digunakan untuk membuat matriks identitas. Matriks identitas 4x4 adalah matriks yang nilai diagonal utamanya sama dengan satu dan lainya nol.
Implementasi fungsi untuk membuat matriks identitas adalah: Matriks3d_t createIdentity (void) { Matriks3D_t 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; }