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 ("Helmykediri.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
Diperbolehkan menyalin artikel yang ada diblog ini dengan syarat menyertakan sumber. Blog anda tidak akan dihapus , deindex , adsense tidak akan menerima keluhan hak cipta dari saya.