Grafika Tugas Membuat Rumah 3 Dimensi
Tampilan Rumah 1 :
CODING LENGKAP :
#include <stdlib.h>#include <GL/glut.h>#include <windows.h>int w=480, h=480, z=-20;int x1=0, y1=0, sudut=0, z1=0, skalaX=0, skalaY=0;float lx=10.0f, ly =10.0f;void renderScene(void){GLfloat LightPosition[] = {lx, ly, 10.0f, 0.0f};glLightfv(GL_LIGHT0, GL_POSITION, LightPosition);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();//supaya bisa di ubah"glTranslatef(0,0,z);glRotatef(sudut,x1,y1,z1);//TanahglPushMatrix();glEnable(GL_COLOR_MATERIAL);glRotatef(90,0,0,1);glTranslatef(-6.6,-1.5,0);glColor3f(0,1,0);glScalef(0.11,7,7);glutSolidCube(4.);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//bangunan bawahglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(0,-2.75,0);glColor3f(0.8,0.6,0.3);glScalef(9,4,4);glutSolidCube(2);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//bangunan atasglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-4,2.75,-1);glColor3f(0.8,0.6,0.3);glScalef(5,3,3);glutSolidCube(2);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//lawang bawahglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-2,-3,2.01);glColor3f(0,0,1);glScalef(2,3,2);glutSolidCube(2);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//lawang atasglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-7,3,1.1);glColor3f(0,0,1);glScalef(1,1.5,1);glutSolidCube(2);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//engsel atasglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-7.5,2.75,2.1);glColor3f(1,1,1);glutSolidSphere(0.2,100,100);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//engsel bawahglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-3.25,-3,4);glColor3f(1,1,1);glutSolidSphere(0.2,100,100);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//jendela atasglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-2,3.2,1.1);glColor3f(1,2,0);glScalef(2,1,1);glutSolidCube(2);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//jendela bawahglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(2,-2,2.01);glColor3f(1,2,0);glScalef(1.5,1,2);glutSolidCube(2);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//jendela bawahglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(7,-2,2.01);glColor3f(1,2,0);glScalef(1.5,1,2);glutSolidCube(2);glDisable(GL_COLOR_MATERIAL);glPopMatrix();//pager depan kananglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(7,-5.5,13);glColor3f(1,0,0);glScalef(15.75,0.5,0.75);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();for (int dep=0.5;dep<13;dep+=2){glPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(dep,-5.5,13);glColor3f(1,1,1);glScalef(1,2,0.5);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();}//pager depan kiriglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-8,-5.5,13);glColor3f(1,0,0);glScalef(9.5,0.5,0.75);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();for (int dep2=-4;dep2>-12;dep2-=2){glPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(dep2,-5.5,13);glColor3f(1,1,1);glScalef(1,2,0.5);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();}//pagar belakangglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(1.2,-5.5,-13);glColor3f(1,0,0);glScalef(27.8,0.5,0.75);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();for (int dep=-10;dep<13;dep+=2){glPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(dep,-5.5,-13);glColor3f(1,1,1);glScalef(1,2,0.5);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();}//pagar samping kananglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(14.2,-5.5,0);glColor3f(1,0,0);glScalef(0.75,0.5,28);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();for (int samp=-13;samp<15;samp+=2){glPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(14.2,-5.5,samp);glColor3f(1,1,1);glScalef(0.5,2,1);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();}//pagar sampingglPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-12,-5.5,0);glColor3f(1,0,0);glScalef(0.75,0.5,28);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();for (int samp=-13;samp<15;samp+=2){glPushMatrix();glEnable(GL_COLOR_MATERIAL);glTranslatef(-12,-5.5,samp);glColor3f(1,1,1);glScalef(0.5,2,1);glutSolidCube(1);glDisable(GL_COLOR_MATERIAL);glPopMatrix();}//atapglPushMatrix();glEnable(GL_COLOR_MATERIAL);glRotatef(-90,1,0,0);glTranslatef(-4,1,4.75);glScalef(0.3,0.3,0.3);glColor3f(1,0,0);glutSolidCone(25,15,100,4);glDisable(GL_COLOR_MATERIAL);glPopMatrix();glutSwapBuffers();}void resize(int w1,int h1){glViewport(0,0,w1,h1);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0,(float) w1/(float) h1, 1.0,300.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();}void myKeyboard(unsigned char key, int x, int y){if (key == 'x') {x1=1;y1=0;z1=0;sudut+=10;}if (key == 'c') {x1=1;y1=0;z1=0;sudut-=10;}else if (key == 'z') {y1=0;x1=0;z1=1;sudut+=-10;}else if (key == 'a') {y1=0;x1=0;z1=1;sudut+=+10;}}void mySpecialKeyboard(int key, int x, int y){switch(key){case GLUT_KEY_UP:z+=5;break;case GLUT_KEY_DOWN:z-=5;break;case GLUT_KEY_RIGHT:y1=1;x1=0;z1=0;sudut+=-10;break;case GLUT_KEY_LEFT:y1=1;x1=0;z1=0;sudut+=+10;break;}}void mouse(int tombol, int state, int x, int y){lx = x-(w/2);ly = (h/2)-y;}void motion (int x, int y){lx = x-(w/2);ly = (h/2)-y;}void init(){GLfloat LightPosition[] = {10.0f, 10.0f, 30.0f, 0.0f};GLfloat LightAmbient[] = {0.0f, 1.0f, 0.0f, 1.0f};GLfloat LightDiffuse[] = {0.7f, 0.7f, 0.7f, 1.0f};GLfloat LightSpecular[] = {1.0f, 1.0f, 1.0f, 1.0f};GLfloat Shine[] = {100};glShadeModel(GL_SMOOTH);glClearColor(0.0f, 0.0f, 0.0f, 0.5f);glClearDepth(1.0f);glEnable(GL_DEPTH_TEST);glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);glColorMaterial(GL_FRONT, GL_COLOR_INDEXES);glMaterialfv(GL_FRONT, GL_SPECULAR, LightSpecular);glMaterialfv(GL_FRONT, GL_SHININESS, Shine);glLightfv(GL_LIGHT0, GL_SHININESS, Shine);glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);return;}void timer(int value){glutPostRedisplay();glutTimerFunc(50,timer,0);}void main (int argc, char **argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(w,h);glutCreateWindow("kelompok 3 | UTS GRAFIKA");gluOrtho2D(-w/2,w/2,-h/2,h/2);glutDisplayFunc(renderScene);glutReshapeFunc(resize);glutKeyboardFunc(myKeyboard);glutSpecialFunc(mySpecialKeyboard);glutMouseFunc(mouse);glutPassiveMotionFunc(motion);glutTimerFunc(1,timer,0);init();glutMainLoop();}
Pembahasan :
“stdlib” : digunakan untuk membersihkan layar
GLfloat LightPosition : untuk pencahayaan bangunan rumah
glLightfv : digunakan untuk mengatur berbagai parameter karena mereka sedang digunakan untuk menentukan nilai default untuk GL_LIGHT0
GLclear : digunakan untuk membersihkan semua pixel
glLoadIdentity : digunakan untuk memanggil matriks identitas dan dijadikan status matriks (proyeksi) saat ini
Glrotatef : digunakan untuk memutar objek
glEnable(GL_COLOR_MATERIAL) : perlu memanggil glEnable dengan GL_COLOR_MATERIAL sebagai parameter kemudian kemudian anda dapat mengubah warna dengan glcolor
GlTranslatef : digunakan untuk memindahkah objek
GlColor3f : menentukan warna yang mengacu pada warna RGB
glutSolidCube(4.) : menyatakan ketebalan dari objek yang kita buat seperti halnya menginputkan volumen objek dengan tipe data integer
glPopMatrix : panggilan untuk mengisolasi, melihat , dan pemodelan transformasi
Coding untuk membuat bangunan bawah, bangunan atas dan pintu bawah:
glEnable(GL_COLOR_MATERIAL) : perlu memanggil glEnable dengan GL_COLOR_MATERIAL sebagai parameter kemudian kemudian anda dapat mengubah warna dengan glcolor
glutSolidCube : fungsi untuk menggambar ketebalan kubus
glScalef : untuk memperbesar dan memperkecil objek, disini kita menggunakan ukuran tidak harus seragam antara lebar, panjang dan tingginya sehingga kita bebas meresize objek yang kita buat
GlColor3f : menentukan warna yang mengacu pada warna RGB
glPopMatrix : panggilan untuk mengisolasi, melihat , dan pemodelan transformasi
Coding untuk membuat pintu atas, engsel atas dan engsel bawah:
glEnable(GL_COLOR_MATERIAL) : perlu memanggil glEnable dengan GL_COLOR_MATERIAL sebagai parameter kemudian kemudian anda dapat mengubah warna dengan glcolor
GlTranslatef : digunakan untuk memindahkah objek
glutSolidSphere : menampilkan objek berupa bola
glScalef : untuk memperbesar dan memperkecil objek, disini kita menggunakan ukuran tidak harus seragam antara lebar, panjang dan tingginya sehingga kita bebas meresize objek yang kita buat
GlColor3f : menentukan warna yang mengacu pada warna RGB
glPopMatrix : panggilan untuk mengisolasi, melihat , dan pemodelan transformasi
Coding untuk membuat jendela atas dan jendela bawah:
glEnable(GL_COLOR_MATERIAL) : perlu memanggil glEnable dengan GL_COLOR_MATERIAL sebagai parameter kemudian kemudian anda dapat mengubah warna dengan glcolor
GlTranslatef : digunakan untuk memindahkah objek
glutSolidSphere : menampilkan objek berupa bola
glScalef : untuk memperbesar dan memperkecil objek, disini kita menggunakan ukuran tidak harus seragam antara lebar, panjang dan tingginya sehingga kita bebas meresize objek yang kita buat
GlColor3f : menentukan warna yang mengacu pada warna RGB
glPopMatrix : panggilan untuk mengisolasi, melihat , dan pemodelan transformasi
Coding untuk membuat pagar depan kanan dan pagar depan kiri :
glEnable(GL_COLOR_MATERIAL) : perlu memanggil glEnable dengan GL_COLOR_MATERIAL sebagai parameter kemudian kemudian anda dapat mengubah warna dengan glcolor
GlTranslatef : digunakan untuk memindahkah objek
glutSolidSphere : menampilkan objek berupa bola
glScalef : untuk memperbesar dan memperkecil objek, disini kita menggunakan ukuran tidak harus seragam antara lebar, panjang dan tingginya sehingga kita bebas meresize objek yang kita buat
GlColor3f : menentukan warna yang mengacu pada warna RGB
glPopMatrix : panggilan untuk mengisolasi, melihat , dan pemodelan transformasi
Coding untuk membuat pagar belakang dan pagar samping kanan:
int dep=-10 dep<13 dep+=2 : variabel dep dideklarasikan dalam tipe data integer , untuk mengatur fungsi perulangan
glTranslatef(dep,-5.5, -13) : mengatur tampilan perpindahan objek mulai dari dep pada skala -13 mula-mula sebelum perulangan
int sam=-13 sam<15 sam+=2 : variabel sam dideklarasikan dalam tipe data integer , untuk mengatur fungsi perulangan
gltranslatef (14.2, -5.5, samp) : mengatur tampilan perpindahan objek mula-mula pada skala 14.2 , -5.5 hingga ke perulangan dengan variable sam
glutsolidCube : mengatur ketebalan objek, semakin besar angkanya semakin tebal
Coding untuk membuat pagar samping dan atap:
int sam=-13 sam<15 sam+=2 : variabel sam dideklarasikan dalam tipe data integer , untuk mengatur fungsi perulangan
gltranslatef (14.2, -5.5, samp) : mengatur tampilan perpindahan objek mula-mula pada skala 14.2 , -5.5 hingga ke perulangan dengan variable sam
glutsolidCube : mengatur ketebalan objek, semakin besar angkanya semakin tebal
Coding untuk menampilkan objek rumah:
void resize() : untuk menampilkan objek rumah yang telah kita buat
void myKeyboard : fungsi keyboard
Baris 248 – 253 : jika kita tekan keyboard x 1 kali maka dia akan memutar ke kanan sudut 10
Baris 256 – 259 : jika kita tekan keyboard c 1 kali maka dia akan memutar ke atas sudut -10
Baris 262 – 267 : jika kita tekan keyboard c 1 kali maka dia akan memutar berlawanan sudut -10
Coding untuk menekan arah atas, bawah, kanan dan kiri pada keyboard:
Void mySpecialKeyboard : Untuk menerima inputan dari keyboard
Glut_key_up : Untuk merotasi objek kearah atas
Glut_key_down : Untuk merotasi objek kearah bawah
Glut_key_right : Untuk merotasi objek kearah kanan
Glut_key_left : Untuk merotasi objek kearah kiri
Coding untuk Pengaturan Pencahayaan:
void mouse(int tombol, int state, int x, int y) : hasil pengubahan pencahayaan pada bangunan rumah menggunakan void mouse
void motion (int x, int y) : hasil pengubahan pencahayaan menggunakan void mouse
void init() : posisi cahaya di deklarasikan dalam init
GLfloat LightPosition[] : x, y, z , v posisi cahaya
GLfloat LightAmbient[] : Intensitas RGBA ambient cahaya
GLfloat LightDiffuse[] : intensitas RGBA menyebar cahaya
GLfloat LightSpecular[] : intensitas RGBA specular cahaya
glShadeModel(GL_SMOOTH) : untuk gouraud shading kita tentukan normal
glClearColor(0.0f, 0.0f, 0.0f, 0.5f) : warna latar belakang dengan 4 komponen RGBA-alpha
glEnable(GL_DEPTH_TEST) : untuk mengaktifkan setiap cahaya dengan glEnable
glMaterialfv(GL_FRONT, GL_SPECULAR, LightSpecular) : untuk mengatur properti material dari GL_FRONT, GL_SPECULAR, LightSpecular
glMaterialfv(GL_FRONT, GL_SHININESS, Shine) : untuk mengatur properti material dari GL_FRONT, GL_SHININESS, Shine
glLightfv(GL_LIGHT0, GL_SHININESS, Shine) : untuk mengatur properti material dari GL_LIGHT0, GL_SHININESS, Shine
void timer(int value) : waktu atau kecepatan pengubah dari fungsi void mouse
Coding untuk menampilkan windows:
glutInit : memberi tahu MS VC++ bahwa OpenGL library dipakai kedalam program, format fungsi yang dipakai void main (int argc, char **argv)
glutDisplayFunc(renderscene) : fungsinya untuk memanggil jendela display apabila dihilangkan maka jendela akan muncul kemudian akan menghilang
glutInitWindowPosition : fungsinya merubah posisi kordinat munculnya layar display, tergantung lcd layar laptop yang digunakan. Pada ukuran 90.90 layar display akan muncul di kiri layar atas
glutClear(GL_COLOR_BUFFER_BIT) : fungsinya untuk mendeskripsikan warna tampilan windows yang dibuat
glutCreateWindow : untuk memberi nama pada jendela display yang muncul
glutMainLoop : untuk melooping perulangan display agar tidak berhenti
glutKeyboardFunc(myKeyboard) : mengaktifkan fungsi keyboard x , y , z , a
glutMouseFunc : mengaktifkan void mouse untuk mengubah pencahayaan
Tampilan Rumah 2 :
Source code full:
#include <stdlib.h>#include <GL/glut.h>#include <windows.h>//deklarasi variabel dalam tipe data integer, floadint w= 1200 ; int h=600;int x1=0 , y1= 0, z1=0;int sudut=0;int cx, cy;void init (){GLfloat LightPosition[] = {10.0f, 10.0f, 20.0f, 0.0f}; // pencahayaan untuk bangunan rumahGLfloat LightAmbient [] = {0.0f, 1.0f, 0.0f, 1.0f}; // glLightfv digunakan untuk mengatur berbagai parameter karena mereka sedang digunakan untuk menentukan nilai default untuk GL_LIGHT0GLfloat LightDiffuse [] = {0.7f, 0.7f, 0.7f, 1.0f};GLfloat LightSpecular[] = {0.5f, 0.5f, 0.5f, 1.0f};GLfloat Shine [] = { 80 };glShadeModel (GL_SMOOTH );glClearColor (0.0f, 0.0f, 0.0f, 0.5f);glClearDepth (1.0f);glEnable (GL_DEPTH_TEST );glHint (GL_PERSPECTIVE_CORRECTION_HINT , GL_NICEST );//supaya bisa di ubah"glMaterialfv (GL_FRONT , GL_SPECULAR , LightSpecular );glMaterialfv (GL_FRONT , GL_SHININESS , Shine);glEnable (GL_LIGHTING );glEnable (GL_LIGHT0 );return;}void renderScene (){GLfloat LightPosition[] = {10.0f, 10.0f, 20.0f, 0.0f};glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );glClearColor (0.3, 0, 6, 0);LightPosition[1] = cx;LightPosition[0] = cy;glLightfv (GL_LIGHT0 , GL_POSITION , LightPosition );glLoadIdentity ();glTranslatef (0, 0, -200);glRotatef (sudut, x1, y1 , z1);glEnable (GL_COLOR_MATERIAL );//tembok rumahglPushMatrix ();glColor3f (0 , 4., 2);glTranslatef (0 , 5, 0);glScalef (25, 18, 15);glutSolidCube(3);glPopMatrix ();//lantai 2glPushMatrix ();glColor3f (4 , 4, 4);glTranslatef (0 , 5.5, 0);glScalef (25.1, 0.25, 16);glutSolidCube(3);glPopMatrix ();//atap rumahglPushMatrix ();glColor3f (9 , 2, 1);glTranslatef (0 , 32.5, 0);glRotatef (45, 1, 0, 0);glScalef (14.8, 7, 7);glutSolidCube(5);glPopMatrix ();glPushMatrix ();glColor3f (3 , 1, 0);glTranslatef (0 , 35, 0);glRotatef (45, 1, 0, 0);glScalef (14, 7, 7);glutSolidCube(5);glPopMatrix ();//atap tambahan depanglPushMatrix ();glColor3f (1 , 1, 1);glTranslatef (0 , 30, 25);glRotatef (90, 0, 0, 1);glScalef (1 ,60 , 5);glutSolidCube(1.2);glPopMatrix ();//atap tambahan belakangglPushMatrix ();glColor3f (1 , 1, 1);glTranslatef (0 , 30, -25);glRotatef (90, 0, 0, 1);glScalef (1 ,60 , 5);glutSolidCube(1.2);glPopMatrix ();//pintu depanglPushMatrix ();glColor3f (4 , 0, 0);glTranslatef (6 , -10, 22.4);glRotatef (90, 0, 1, 0);glScalef (1, 20, 10);glutSolidCube(1.2);glPopMatrix ();//pintu depan 2glPushMatrix ();glColor3f (4 , 0, 0);glTranslatef (-6.25 , -10, 22.4);glRotatef (90, 0, 1, 0);glScalef (1, 20, 10);glutSolidCube(1.2);glPopMatrix ();//pintu belakangglPushMatrix ();glColor3f (4 , 0, 0);glTranslatef (-18 , -13, -22.4);glRotatef (90, 0, 1, 0);glScalef (1, 15, 8);glutSolidCube(1.2);glPopMatrix ();//jendela atas kananglPushMatrix ();glColor3f (0 , 0, 0);glTranslatef (25 , 15, 22.4);glRotatef (90, 0, 1, 0);glScalef (1, 12, 6);glutSolidCube(1.2);glPopMatrix ();//jendela atas kiriglPushMatrix ();glColor3f (0 , 0, 0);glTranslatef (-25 , 15, 22.4);glRotatef (90, 0, 1, 0);glScalef (1, 12, 6);glutSolidCube(1.2);glPopMatrix ();//jendela atas samping kiriglPushMatrix ();glColor3f (0 , 0, 0);glTranslatef (-38 , 15, 15);glScalef (1, 12, 6);glutSolidCube(1.2);glPopMatrix ();//jendela atas samping kananglPushMatrix ();glColor3f (4 , 8, 0);glTranslatef (38 , 15, -15);glScalef (1, 12, 6);glutSolidCube(1.2);glPopMatrix ();//jendela bawah kananglPushMatrix ();glColor3f (4 , 8, 0);glTranslatef (30 , -7, 22);glRotatef (90, 0, 1, 0);glScalef (2, 9, 5);glutSolidCube(1.2);glPopMatrix ();//jendela bawah kiriglPushMatrix ();glColor3f (4 , 8, 0);glTranslatef (-30 , -7, 22);glRotatef (90, 0, 1, 0);glScalef (2, 9, 5);glutSolidCube(1.2);glPopMatrix ();//pagar depan kiriglPushMatrix ();glColor3f (8 , 0, 4);glTranslatef (-32 , -18, 60);glRotatef (90, 0, 1, 0);glScalef (1, 10, 36.5);glutSolidCube(1.2);glPopMatrix ();//pagar depan kananglPushMatrix ();glColor3f (8 , 0, 4);glTranslatef (32 , -18, 60);glRotatef (90, 0, 1, 0);glScalef (1, 10, 36.5);glutSolidCube(1.2);glPopMatrix ();//pagar belakangglPushMatrix ();glColor3f (8 , 0, 4);glTranslatef (0 , -18, -60);glRotatef (90, 0, 1, 0);glScalef (1, 10, 90);glutSolidCube(1.2);glPopMatrix ();//pagar kiriglPushMatrix ();glColor3f (8 , 0, 4);glTranslatef (53.5 , -18, 0);glScalef (1, 10, 101);glutSolidCube(1.2);glPopMatrix ();//pagar kiriglPushMatrix ();glColor3f (8 , 0, 4);glTranslatef (-53.5 , -18, 0);glScalef (1, 10, 100);glutSolidCube(1.2);glPopMatrix ();//lampu pagar depan kiriglPushMatrix ();glColor3f (6 , 7, 0);glTranslatef (-51.5 , -9.5, 59.5);glRotatef (90, 0, 1, 0);glScalef (1, 1, 1);glutSolidSphere (3, 36, 36);glPopMatrix ();//lampu pagar belakang kiriglPushMatrix ();glColor3f (6 , 7, 0);glTranslatef (-51.5 , -9.5, -59.5);glRotatef (90, 0, 1, 0);glScalef (1, 1, 1);glutSolidSphere (3, 36, 36);glPopMatrix ();//lampu pagar depan kananglPushMatrix ();glColor3f (6 , 7, 0);glTranslatef (51.5 , -9.5, 59.5);glRotatef (90, 0, 1, 0);glScalef (1, 1, 1);glutSolidSphere (3, 36, 36);glPopMatrix ();//lampu pagar belakang kananglPushMatrix ();glColor3f (6 , 7, 0);glTranslatef (51.5 , -9.5, -59.5);glRotatef (90, 0, 1, 0);glScalef (1, 1, 1);glutSolidSphere (3, 36, 36);glPopMatrix ();//jalan depan pintuglPushMatrix ();glColor3f (0, 3, 0);glTranslatef (0 , -23.05, 40);glRotatef (90, 0, 0, 1);glScalef (1 ,15 , 30.5);glutSolidCube(1.2);glPopMatrix ();//jalan depanglPushMatrix ();glColor3f (1 , 1, 1);glTranslatef (0 , -25, 80);glRotatef (90, 0, 0, 1);glScalef (1, 400, 25);glutSolidCube(1.2);glPopMatrix ();//jalan belakangglPushMatrix ();glColor3f (1 , 1, 1);glTranslatef (0 , -25, -80);glRotatef (90, 0, 0, 1);glScalef (1, 400, 25);glutSolidCube(1.2);glPopMatrix ();//jalan samping kananglPushMatrix ();glColor3f (1 , 1, 1);glTranslatef (80 , -25, 80);glRotatef (90, 0, 0, 1);glScalef (1,25 , 400);glutSolidCube(1.2);glPopMatrix ();//jalan samping kiriglPushMatrix ();glColor3f (1 , 1, 1);glTranslatef (-80 , -25, 80);glRotatef (90, 0, 0, 1);glScalef (1,25 , 400);glutSolidCube(1.2);glPopMatrix ();//BulanglPushMatrix ();glColor4f(1.0f, 1.0f, 1.0f, 0.0f);glTranslatef (55.5 , 29.5, 110.5);glRotatef (90, 0, 1, 0);glScalef (1, 1, 1);glutSolidSphere (3, 36, 36);glPopMatrix ();glDisable (GL_COLOR_MATERIAL );glutSwapBuffers ();}void resize (int w1, int h1){glViewport (0, 0 , w1, h1);glMatrixMode (GL_PROJECTION );glLoadIdentity ();gluPerspective (45.0 , (float) w1/ (float) h1, 1.0, 300.0);glMatrixMode (GL_MODELVIEW );glLoadIdentity ();}void myKeyboard (unsigned char key, int x, int y){switch (key){case 'x' :x1 = 1;y1 = 0;z1 = 0;sudut+=-10;break ;case 'y' :x1 = 0;y1 = 1;z1 = 0;sudut+=-10;break ;case 'z' :x1 = 0;y1 = 0;z1 = 1;sudut+=-10;break ;}}void mouse(int tombol, int state, int x, int y){cx = x-(w/2);cy = (h/2)-y;}void motion (int x, int y){cx = x-(w/2);cy = (h/2)-y;}void update(int value){glutPostRedisplay ();glutTimerFunc (50 , update , 0);}void main (int argc, char **argv){glutInit (&argc, argv);glutInitDisplayMode (GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA );glutInitWindowPosition (10, 10);glutInitWindowSize (w ,h);glutCreateWindow ("helmynia.com");glutReshapeFunc (resize );glutDisplayFunc (renderScene );glutMouseFunc(mouse);glutMotionFunc(motion);glutTimerFunc (50, update , 0);glutKeyboardFunc (myKeyboard );init ();glutMainLoop ();}
....helmykediricom
Posting Komentar untuk "Grafika Tugas Membuat Rumah 3 Dimensi"
Posting Komentar
Artikel di blog ini bersumber dari pengalaman pribadi penulis, tulisan orang lain sebagai posting tamu maupun bayaran oleh sebab itu segala hak cipta baik kutipan dan gambar milik setiap orang yang merasa memilikinya