NIM : 1818073
NAMA : Eldi Pramadhani
MATERI : Transformasi Objek 3 Dimensi
TUGAS : Transformasi Objek 3 Dimensi
2
9.1 Tujuan
1. Praktikkan mampu memahami transformasi objek 3 dimensi.
2. Praktikan mampu memahami fungsi library OpenGL untuk interaksi dengan perangkat.
3. Praktikan mampu membuat transformasi objek 3 dimensi pada Visual Studio
menggunakan library OpenGL.
9.2 Alat dan Bahan
1. Laptop
2. Visual studio 2013
3. OpenGL
4. Modul Grafika Komputer 2020
9.3 Landasan Teori
A. Transformasi 3D
Metode transformasi objek tiga dimensi sangat berbeda dengan objek dua dimensi
karena terdapat sumbu z yang ditambahkan sebagai salah satu acuan untuk memperoleh
posisi koordinat baru
1. Translasi
Dalam tranformasi objek tiga dimensi, translasi adalah pemindahan suatu titik
dari titik P=(x,y,z) ke posisi P=(x’,y’,z’) (Hearn, 1994) dengan menggunakan operasi
matriks :
2. Scalling
Penskalaan dilakukan dengan mengisi tr = (0,0,0) dan matriks M diatur seperti
beikut.
Perubahan ukuran suatu objek diperoleh dengan mengalikan semua titik atau atau
vertex pada objek dengan faktor skala pada masing-masing sumbu (parameter Sx
untuk sumbu x, Sy untuk sumbu y, dan Sz untuk sumbu z).
3. Rotasi
Berbeda dengan rotasi di 2D yang menggunakan 2 titik pusat sebagai pusat
perputaran, rotasi 3D menggunakan 3 sumbu koordinat sebagai pusat perputaran.
Dengan demikian ada 3 macam rotasi yang dapat dilakukan , yaitu: rotasi terhadap
sumbu x, rotasi terhadap sumbu y dan rotasi terhadap sumbu z.
B. Fungsi interaksi dengan perangkat
1. Konsep input keyboard
glutKeyboardFunc adalah suatu fungsi callback untuk digunakan sebagai
masukan pada suatu jendela window. Konsepnya pada saat seorang user atau
pengguna memberikan input yaitu menekan pada tombol keyboard, setiap tombol
keyboard yang ditekan akan menghasilkan suatu karakter ASCII yang akan
menghasilkan suatu callback keyboard yang telah didefinisikan berupa fungsi dengan
3 parameter.
Penggunaan input keyboard pada tombol-tombol biasa atau normal key (a-z, 1-0),
dapat dilakukan dengan menggunakan callback function berupa
glutKeyboardFunc(myKeyboard) dengan dideklarasikan terlebih dahulu suatu fungsi
buatan untuk menampung semua perintah input yang
akan digunakan oleh user. Fungsi buatan tersebut seperti contoh di bawah ini:
glutKeyboardFunc(myKeyboard);
glutTimerFunc(30,timer,0);
Callback keyboard khusus dipicu ketika keyboard fungsi atau tombol special yang
dideklarasikan ditekan. Parameter callback kunci adalah GLUT_KEY_tombol
khusus.. Parameter x dan y mengindikasikan koordinat relatif jendela ketika tombol
ditekan.
3. Konsep mouse pada GLUT
Dalam konsep mouse pada glut ada beberapa fungsi dasar dan inisialisasi yang
digunakan untuk melakukan interaksi mouse. Adapun penjelasannya adalah sebagai
berikut :
a. Fungsi dasar pembuatan interaksi dengan menggunakan MouseFunction
Paramater func adalah fungsi yang akan ditangani dengan event klik mouse.
void renderScene(void) {
static float alpha = 0;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0, 0, 0, 0);
glLoadIdentity();
glTranslatef(xt, yt, zt);
glRotatef(sudut, x1, y1, z1);
glRotatef(alpha, 1, 1, 1);
glColor3f(0, 1, 1);
glutWireCone(2, 4, 25, 25);//fungsi kerucut
glColor3f(1, 0, 0);
glutSwapBuffers();
}