TRANSFORMASI OBJEK (TRANSFORMASI AFFINE 2D DAN 3D) BAB VII TRANSFORMASI OBJEK (TRANSFORMASI AFFINE 2D DAN 3D)
Pengertian Dasar Transformasi (1)
Pengertian Dasar Transformasi (2) Gambar 1 menunjukkan gambar rumah 2D sebelum dan sesudah transformasi Gambar 2 menunjukkan gambar rumah 3D sebelum dan sesudah transformasi.
Transformasi Affine 2D (1) Untuk transformasi, koordinat titik P dan Q dalam 2D dinyatakan sebagai : dan Hal ini berarti titik P berada pada lokasi P = Px i + Py j + , dimana titik pusat koordinat (tidak harus selalu (0,0)).
Transformasi Affine 2D (2) Transformasi dari titik P menuju titik Q menggunakan fungsi T() berikut ini. atau ringkasnya Q = T(P)
Transformasi Affine 2D (3) Transformasi Affine mempunyai bentuk seperti berikut ini. dalam bentuk persamaan matriks persamaan di atas dapat diubah menjadi
Transformasi Affine 2D (4) Contoh : Lakukan transformasi Affine dari titik P = (1,2) ke Q dengan matriks transformasi Jawab :
Transformasi Affine 2D (5) Transformasi Affine berpengaruh pada 4 transformasi dasar, yaitu: translasi skala rotasi shear
Transformasi Affine 2D (6)
Transformasi Affine 2D untuk Translasi atau Matriks untuk translasi:
Transformasi Affine 2D untuk Skala ( Qx, Qy ) = ( Sx Px , Sy Py ) Matriks untuk skala:
Transformasi Affine 2D untuk Rotasi Qx = Px cos() – Py sin() Qy = Px sin() – Py cos() Matriks untuk rotasi:
Transformasi Affine 2D untuk Shear Qx = Px + hPy Qy = Py Matriks untuk shear:
Transformasi Affine 3D Transformasinya: dengan
Transformasi Affine 3D untuk Translasi Matriks transformasinya:
Transformasi Affine 3D untuk Skala Matriks transformasinya:
Transformasi Affine 3D untuk Rotasi Rotasi terhadap sb. x Rotasi terhadap sb. y Rotasi terhadap sb. z
Transformasi Affine 3D untuk Shear Matriks transformasinya:
Transformasi Affine 3D dalam OpenGL Penggambaran titik 3D ke dalam window adalah memproyeksikan titik (x1, y1, z1) menjadi (x1, y2, 0).
Pipelining Yaitu proses penampilan gambar sampai ke view port.
Fungsi untuk Pipeline pada OpenGL Untuk mengatur transformasi model view Untuk mengatur kamera dengan proyeksi paralel Untuk mengatur posisi kamera
Fungsi untuk Mengatur Transformasi Modelview glMatrixMode(GL_MODELVIEW) glScaled(sx, sy, sz) Matrik dari obyek dikalikan masing-masing untuk penskalaan x dengan sx, y dengan sy, dan z dengan sz. Hasilnya dikembalikan lagi ke matrik obyek. glTranslated(dx, dy, dz) Matrik dari obyek dikalikan masing-masing untuk translasi x dengan dx, y dengan dy, dan z dengan dz. Hasilnya dikembalikan lagi ke matrik obyek. glRotated(angle, ux, uy, uz) Matrik dari obyek dikalikan masing-masing untuk rotasi sebesar sudut angle dan berputar mengelilingi sumbu antara titik pusat dengan titik (ux, uy, uz).
Fungsi untuk Mengatur Kamera dengan Proyeksi Paralel glOrtho(left, right, bott, top, near, far) Digunakan untuk membangun ruang pandang yang berupa balok berongga yang sejajar dengan sumbu x sepanjang left sampai right, sejajar sumbu y sepanjang bott sampai top, dan sejajar dengan sumbu z sepanjang -near sampai -far. Digunakan tanda negatif karena defaultnya kamera terletak pada titik pusat dan melihat ke bawah sumbu negatif z. Untuk near bernilai 2, artinya meletakkan bidang dekat pada z=-2 atau 2 unit di depan mata. Demikian juga untuk far, misalnya far = 20, artinya meletakkan bidang jauh 20 unit di depan mata.
Fungsi untuk Mengatur Posisi Kamera gluLookAt( eye.x, eye.y, eye.z, look.x, look.y, look.z, up.x, up.y, up.z);
Bentuk Dasar untuk Objek 3D dalam Bentuk Wireframe dalam OpenGL Kubus : glutWireCube(GLdouble size); menampilkan kubus dengan panjang sisi masing-masing sepanjang size. Donat : glutWireSphare(Gldouble radius, Glint nSlices, Glint nStacks) Kerucut : glutWireTorus(Gldouble inRad, Gldouble outRad, Glint nSlices, Glint nStacks) Tempat teh : glutWireTeapot(Gldouble size)