Widget HTML #1

Grafika Tugas Membuat Rumah 3 Dimensi

Tampilan Rumah 1 :

Membuat Rumah 3Dimensi

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);

  //Tanah
 glPushMatrix();
 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 bawah
 glPushMatrix();
 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 atas
 glPushMatrix();
 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 bawah
 glPushMatrix();
 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 atas
 glPushMatrix();
 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 atas
 glPushMatrix();
 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 bawah
 glPushMatrix();
 glEnable(GL_COLOR_MATERIAL);
 glTranslatef(-3.25,-3,4);
 glColor3f(1,1,1);
 glutSolidSphere(0.2,100,100);
 glDisable(GL_COLOR_MATERIAL);
 glPopMatrix();

 //jendela atas
 glPushMatrix();
 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 bawah
 glPushMatrix();
 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 bawah
 glPushMatrix();
 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 kanan
 glPushMatrix();
 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 kiri
              glPushMatrix();
              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 belakang
              glPushMatrix();
              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 kanan
              glPushMatrix();
              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 samping
              glPushMatrix();
              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();
  }

//atap
 glPushMatrix();
 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 :

Grafika Tugas Membuat Rumah 3 Dimensi

Source code full:

#include <stdlib.h>
#include <GL/glut.h>
#include <windows.h>
//deklarasi variabel dalam tipe data integer, fload
int 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 rumah
       GLfloat 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_LIGHT0
       GLfloat 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 rumah
       glPushMatrix ();
              glColor3f (0 , 4., 2);
              glTranslatef (0 , 5, 0);
             
              glScalef (25, 18, 15);
              glutSolidCube(3);
       glPopMatrix ();

       //lantai 2
       glPushMatrix ();
              glColor3f (4 , 4, 4);
              glTranslatef (0 , 5.5, 0);
             
              glScalef (25.1, 0.25, 16);
              glutSolidCube(3);
       glPopMatrix ();


       //atap rumah
       glPushMatrix ();
              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 depan
       glPushMatrix ();
              glColor3f (1 , 1, 1);
              glTranslatef (0 , 30, 25);
              glRotatef (90, 0, 0, 1);
              glScalef (1 ,60 , 5);
              glutSolidCube(1.2);
       glPopMatrix ();

       //atap tambahan belakang
       glPushMatrix ();
              glColor3f (1 , 1, 1);
              glTranslatef (0 , 30, -25);
              glRotatef (90, 0, 0, 1);
              glScalef (1 ,60 , 5);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pintu depan
       glPushMatrix ();
              glColor3f (4 , 0, 0);
              glTranslatef (6 , -10, 22.4);
              glRotatef (90, 0, 1, 0);
              glScalef (1, 20, 10);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pintu depan 2
       glPushMatrix ();
              glColor3f (4 , 0, 0);
              glTranslatef (-6.25 , -10, 22.4);
              glRotatef (90, 0, 1, 0);
              glScalef (1, 20, 10);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pintu belakang
       glPushMatrix ();
              glColor3f (4 , 0, 0);
              glTranslatef (-18 , -13, -22.4);
              glRotatef (90, 0, 1, 0);
              glScalef (1, 15, 8);
              glutSolidCube(1.2);
       glPopMatrix ();

       //jendela atas kanan
       glPushMatrix ();
              glColor3f (0 , 0, 0);
              glTranslatef (25 , 15, 22.4);
              glRotatef (90, 0, 1, 0);
              glScalef (1, 12, 6);
              glutSolidCube(1.2);
       glPopMatrix ();

       //jendela atas kiri
       glPushMatrix ();
              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 kiri
       glPushMatrix ();
              glColor3f (0 , 0, 0);
              glTranslatef (-38 , 15, 15);
              glScalef (1, 12, 6);
              glutSolidCube(1.2);
       glPopMatrix ();

       //jendela atas samping kanan
       glPushMatrix ();
              glColor3f (4 , 8, 0);
              glTranslatef (38 , 15, -15);
              glScalef (1, 12, 6);
              glutSolidCube(1.2);
       glPopMatrix ();
      
       //jendela bawah kanan
       glPushMatrix ();
              glColor3f (4 , 8, 0);
              glTranslatef (30 , -7, 22);
              glRotatef (90, 0, 1, 0);
              glScalef (2, 9, 5);
              glutSolidCube(1.2);
       glPopMatrix ();

       //jendela bawah kiri
       glPushMatrix ();
              glColor3f (4 , 8, 0);
              glTranslatef (-30 , -7, 22);
              glRotatef (90, 0, 1, 0);
              glScalef (2, 9, 5);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pagar depan kiri
       glPushMatrix ();
              glColor3f (8 , 0, 4);
              glTranslatef (-32 , -18, 60);
              glRotatef (90, 0, 1, 0);
              glScalef (1, 10, 36.5);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pagar depan kanan
       glPushMatrix ();
              glColor3f (8 , 0, 4);
              glTranslatef (32 , -18, 60);
              glRotatef (90, 0, 1, 0);
              glScalef (1, 10, 36.5);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pagar belakang
       glPushMatrix ();
              glColor3f (8 , 0, 4);
              glTranslatef (0 , -18, -60);
              glRotatef (90, 0, 1, 0);
              glScalef (1, 10, 90);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pagar kiri
       glPushMatrix ();
              glColor3f (8 , 0, 4);
              glTranslatef (53.5 , -18, 0);
              glScalef (1, 10, 101);
              glutSolidCube(1.2);
       glPopMatrix ();

       //pagar kiri
       glPushMatrix ();
              glColor3f (8 , 0, 4);
              glTranslatef (-53.5 , -18, 0);
              glScalef (1, 10, 100);
              glutSolidCube(1.2);
       glPopMatrix ();
      
       //lampu pagar depan kiri
       glPushMatrix ();
              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 kiri
       glPushMatrix ();
              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 kanan
       glPushMatrix ();
              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 kanan
       glPushMatrix ();
              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 pintu
       glPushMatrix ();
              glColor3f (0, 3, 0);
              glTranslatef (0 , -23.05, 40);
              glRotatef (90, 0, 0, 1);
              glScalef (1 ,15 , 30.5);
              glutSolidCube(1.2);
       glPopMatrix ();

       //jalan depan
       glPushMatrix ();
              glColor3f (1 , 1, 1);
              glTranslatef (0 , -25, 80);
              glRotatef (90, 0, 0, 1);
              glScalef (1, 400, 25);
              glutSolidCube(1.2);
       glPopMatrix ();

       //jalan belakang
       glPushMatrix ();
              glColor3f (1 , 1, 1);
              glTranslatef (0 , -25, -80);
              glRotatef (90, 0, 0, 1);
              glScalef (1, 400, 25);
              glutSolidCube(1.2);
       glPopMatrix ();


       //jalan samping kanan
       glPushMatrix ();
              glColor3f (1 , 1, 1);
              glTranslatef (80 , -25, 80);
              glRotatef (90, 0, 0, 1);
              glScalef (1,25 , 400);
              glutSolidCube(1.2);
       glPopMatrix ();

       //jalan samping kiri
       glPushMatrix ();
              glColor3f (1 , 1, 1);
              glTranslatef (-80 , -25, 80);
              glRotatef (90, 0, 0, 1);
              glScalef (1,25 , 400);
              glutSolidCube(1.2);
       glPopMatrix ();

//Bulan
       glPushMatrix ();
              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
Pegawai Kantoran dan Pekerja Serabutan Online
Pegawai Kantoran dan Pekerja Serabutan Online "Apabila anak adam (manusia) telah meninggal dunia, maka terputuslah amalnya darinya, kecuali tiga perkara, yaitu sedekah jariyah (sedekah yang pahalanya terus mengalir), ilmu yang bermanfaat, atau anak saleh yang selalu mendoakannya." (HR Muslim No. 1631)

Posting Komentar untuk "Grafika Tugas Membuat Rumah 3 Dimensi"