1. TUJUAN
Setelah mempelajari bab ini mahasiswa diharapkan:
- Memahami transformasi dasar rotasi
- Dapat memodifikasikan program hingga menghasilkan objek yang beraneka
ragam.
2. DASAR TEORI
Setelah suatu objek grafis dibangun, kita dapat melakukan transformasi terhadap
objek grafis tersebut dengan berbagai cara tanpa menambahkan komponen baru apapun
pada objek grafis tersebut. Ada banyak cara untuk melakukan transformasi objek grafis,
tapi beberapa cara transformasi yang umum adalah :
Translasi : objek dipindahkan ke lokasi baru tanpa mengubah bentuk, ukuran
atau orientasinya.
Rotasi : objek dirotasi (diputar) terhadap titik tertentu tanpa mengubah bentuk
dan ukurannya
Scalling : objek diperbesar atau diperkecil. objek dapat diskalakan menggunakan
faktor yang sama baik secara horisontal maupun vertikal sehingga proporsinya tetap atau bisa
menggunakan faktor yang berbeda yang akan menyebabkan objek tersebut menjadi lebih
lebih tinggi, lebih pendek, lebih tipis atau lebih tebal. Translasi dan rotasi disebut juga
sebagai rigid body transformation yaitu transformasi yang hanya mengubah posisi objek,
tanpa mengubah bentuknya
Translasi
Translasi adalah transformasi paling sederhana yang dapat diterapkan pada suatu
objek grafis. Secara sederhana translasi adalah memindahkan objek grafis dari satu tempat ke
tempat lain tanpa mengubah tampilan dan orientasi.
Untuk menghasilkan translasi dari suatu objek grafis, kita menambahkan konstanta Tx
pada koordinat x dan konstanta Ty pada koordinat Y, formula ini diterapkan pada semua titik
pada objek yang akan ditranslasikan.
Rotasi
Rotasi suatu image adalah memutar objek terhadap titik tertentu di bidang xy. Bentuk dan
ukuran objek tidak berubah. Untuk melakukan rotasi perlu diketahui sudut rotasi _ dan pivot
point (Xp,Yp) atau titik rotasi dimana objek dirotasi. NIlai positif dari sudut rotasi
menentukan arah rotasi berlawanan dengan jarum jam dan sebaliknya nilai negative akan
memutar objek searah jarum jam.
3. PERALATAN
Pada praktikum ini saya menggunakan laptop dan software yaitu :
- 1 Unit Laptop Lenovo ZA75
- Microsoft Visual Studio 2010
- Contoh laporan yang telah di berikan sebelumnya
4. LANGKAH PERCOBAAN
Untuk melakukan praktikum dapat mengikuti langkah-langkah / perintah di bawah
ini :
1. Jalankan program visual studio 2010 pada komputer.
2. Tunggu hingga program terbuka.
3. Klik menu File > pilih New > Klik Project.
4. Setelah keluar jendela project pilih Visual C++ > Win32 Console Application.
5. Menuliskan Nama project dan pilih lokasi tempat menyimpan file project.
6. Pada Jendela perintah ini memilih Next.
glVertex2i(60,-300);
glEnd();
}
glVertex2i(-60,-300);
glEnd();
}
//BIANGLALA
void lingkaran() {
void lingkaran3() {
glBegin(GL_POLYGON);
glColor3f(1.3,0.0,0.1); //MERAH
for (i=0;i<=360;i++){
float sudut=i*(2*PI/180);
float x=10+50*cos(sudut);
float y=-230+50*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void lingkaran4() {
glBegin(GL_POLYGON);
glColor3f(0.3,0.9,0.1); //HIJAU
for (i=0;i<=360;i++){
float sudut=i*(2*PI/180);
float x=240+50*cos(sudut);
float y=-10+50*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void lingkaran5() {
glBegin(GL_POLYGON);
glColor3f(0.3,0.2,0.5); //ABU ROKOK
for (i=0;i<=360;i++){
float sudut=i*(2*PI/180);
float x=-240+50*cos(sudut);
float y=20+50*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void lingkaran6() {
glBegin(GL_POLYGON);
glColor3f(1.2,1.0,0.5);
for (i=0;i<=360;i++){
float sudut=i*(2*PI/180);
float x=180+50*cos(sudut);
float y=160+50*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void lingkaran8() {
glBegin(GL_POLYGON);
glColor3f(0.0,0.8,0.7); //CYAN
for (i=0;i<=360;i++){
float sudut=i*(2*PI/180);
float x=180+50*cos(sudut);
float y=-160+50*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void lingkaran9() {
glBegin(GL_POLYGON);
glColor3f(0.8,0.8,0.1); //KUNYIT
for (i=0;i<=360;i++){
float sudut=i*(2*PI/180);
float x=-150+50*cos(sudut);
float y=190+50*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void lingkaran7() {
glBegin(GL_POLYGON);
glColor3f(0.7,0.6,0.5);
for (i=0;i<=360;i++){
float sudut=i*(2*PI/180);
float x=-180+50*cos(sudut);
float y=-160+50*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
glColor3f(0.6,1.2,0.3);
glVertex2i(180,160);
glColor3f(0.0,0.4,0.9);
glVertex2i(180,-160);
glColor3f(0.4,0.4,0.6);
glVertex2i(-150,190);
glEnd();
}
void jarijari2(){ // void untuk objek
glLineWidth(4.0);
glBegin(GL_LINE_LOOP);
glColor3f(1.6,1.2,0.0);
glVertex2i(0,240);
glColor3f(0.6,1.2,0.3);
glVertex2i(240,5);
glColor3f(0.0,0.4,0.9);
glVertex2i(-240,0);
glColor3f(0.4,0.4,0.6);
glVertex2i(5,-240);
glEnd();
}
void renderScene(void){
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(1,1,1,0);
jarijari2();
jarijari3();
lingkaran2();
lingkaran3();
lingkaran4();
lingkaran5();
lingkaran6();
lingkaran7();
lingkaran8();
lingkaran9();
lingkaran();
glPopMatrix();
glColor3f(0,0,0);
tiang(100,10);
lingkaranTENGAH();
glFlush();//untuk memastikan bahwa perintah objek di eksekusi
}
6. HASIL GAMBAR :
BIANGLALA.avi