|
Penerapan Rotation Translasi dan Scale pada OpenGL |
Penerapan Rotation Translasi dan Scale pada OpenGL
Halo selamat malam sobat.. maaf beberapa waktu ini gak sempet nulis karena aku lagi sakit dan sudah 2 minggu gak ikut pelajaran dan belum menentukan akan nulis apa. Akhir Desember Kemarin di sekolah ada tugas terakhir sebelum libur panjang yaitu mapel
PEMPROGRAMAN GRAFIK dengan materi yang diberikan adalah "
Rotation", "
Translasi" dan "
Scale".
Pengertian :
- "Scale " artinya skala atau ukuran, dalam materi ini yang penulis pelajari adalah membuat sebuah objek lalu diubahlah ukurannya menjadi Kecil atau Besar
- "Translasi" dalam materi ini yang penulis pelajari adalah membuat sebuah objek lalu dilipat gandakan jumlahnya dengan posisi objek sesuai dengan Citraan Cermin.
- "Rotasi" artinya perputaran / putaran, dalam materi ini yang penulis pelajari adalah membuat sebuah objek lalu mengubah arah objek
|
Rotasi dan Translasi Pada OpenGL |
Nah, diatas penjelasannya masih sangat kurang karena penulis juga masih belajar..
klo anda kebingungan, bisa download buku ini via google drive ya... :D ( link ada di akhir artikel )
buku ini penulis peroleh dari guru mapel di sekolah, dan sudah biasa dipakai saat pembelajaran. Penulis sangat berharap anda semua dapat berpikir dewasa dan tidak menyalahgunakan file ini untuk tujuan kejahatan..
berikut ini hasil dari pekerjaan yang penulis lakukan dengan bantuan seorang teman yang bernama Adi Sunendar sehingga dapat terselesaikan tepat waktu..
Bagaimana? Bagus kan? tenang penulis pada kesempatan ini akan berbagi berberapa hal :
- Buku PDF Grafkom
- Sourch Code
- Hasil Program yang sudah jadi (.rar)
ini kode programnya sob:
#include "stdafx.h"
#include
void kotak(){
//kotak
glBegin(GL_POLYGON);
glVertex2f(80.,80.);
glVertex2f(80.,100.);
glVertex2f(100.,100.);
glVertex2f(100.,80.);
glEnd();
}
void drawQuad(){
//bintang
glBegin(GL_POLYGON);
glVertex2f(72.5,75.5);
glVertex2f(60.,85.);
glVertex2f(75.,85.);
glVertex2f(80.,100.);
glVertex2f(85.,85.);
glVertex2f(100.,85.);
glVertex2f(87.5,75.5);
glVertex2f(92.,60.);
glVertex2f(80.,69.);
glVertex2f(68.,60.);
glEnd();
}
void loade(){
glPushMatrix();
glColor3f(0,0,1);
glScalef(2,2,0);
glTranslatef(65,-20,0);
glRotatef(45,0,0,1);
kotak();
glTranslatef(-25,-25,0);
kotak();
glPopMatrix();
}
void kotakx(){
glPushMatrix();
glColor3f(1,0,0);
glScalef(2.5,2.5,0);
glTranslatef(30,-73,0);
kotak();
glPopMatrix();
glPushMatrix();
glColor3f(1,1,1);
glScalef(2,2,0);
glTranslatef(60,-68.5,0);
kotak();
glPopMatrix();
glPushMatrix();
glColor3f(1,1,0);
glScalef(1.5,1.5,0);
glTranslatef(110,-61,0);
kotak();
glPopMatrix();
}
void desk(){
kotakx();
glPushMatrix();
glScalef(0.75,0.75,0);
glTranslatef(40,75,0);
kotakx();
glPopMatrix();
glPushMatrix();
glScalef(0.5,0.5,0);
glTranslatef(145,200,0);
kotakx();
glPopMatrix();
}
void dif(){
//1
glPushMatrix();
glColor3f(1,1,0);
glTranslatef(100,100,0);
drawQuad();
glPopMatrix();
glPushMatrix();
glColor3f(1,0,0);
glTranslatef(40,90,0);
kotak();
glTranslatef(100,0,0);
kotak();
glPopMatrix();
glPushMatrix();
loade();
glTranslatef(100,0,0);
loade();
glPopMatrix();
}
void render(){
glPushMatrix();
glScalef(2,2,2);
glRotatef(45,0,0,1);
glColor3f(1,1,0);
kotak();
glPopMatrix();
glPushMatrix();
glTranslatef(-80,177,0);
glColor3f(0,0,0);
drawQuad();
glPopMatrix();
}
void display(){
glPushMatrix();
desk();
glPopMatrix();
glPushMatrix();
glTranslatef(344,-77,0);
glRotatef(90,0,0,1);
desk();
glPopMatrix();
glPushMatrix();
glRotatef(180,0,0,1);
glTranslatef(-422,-267,0);
desk();
glPopMatrix();
glPushMatrix();
glRotatef(270,0,0,1);
glTranslatef(-344,78,0);
desk();
glPopMatrix();
glPushMatrix();
glScalef(1.2,1.2,0);
glTranslatef(177,-50,0);
render();
glPopMatrix();
glPushMatrix();
glRotatef(90,0,0,1);
glScalef(1.2,1.2,0);
glTranslatef(115,-335,0);
render();
glPopMatrix();
glPushMatrix();
glRotatef(180,0,0,1);
glScalef(1.2,1.2,0);
glTranslatef(-175,-270,0);
render();
glPopMatrix();
glPushMatrix();
glRotatef(270,0,0,1);
glScalef(1.2,1.2,0);
glTranslatef(-115,19,0);
render();
glPopMatrix();
}
void fin(){
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
display();
glPopMatrix();
glPushMatrix();
glTranslatef(200,200,0);
display();
glPopMatrix();
glPushMatrix();
glTranslatef(200,-200,0);
display();
glPopMatrix();
glPushMatrix();
glTranslatef(400,0,0);
display();
glPopMatrix();
glFlush();
}
void main (int argc, char **argv) {
glutInit (&argc, argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(600,600);
glutCreateWindow("TUGAS 2 KELOMPOK");
gluOrtho2D(-250.0, 1050.0, -460.0, 750.0);
glutDisplayFunc(fin);
glutMainLoop();
}
Link Download :