260 likes | 527 Views
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.
E N D
BAB VII TRANSFORMASI OBJEK (TRANSFORMASI AFFINE 2D DAN 3D)
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 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)