if17k2009.files.wordpress.com  · web viewperkembangan teknologi yang sangat pesat sekarang ini...

87
3D Rak Buku Proposal ini ditujukan untuk memenuhi tugas besar mata kuliah Komputer Grafika Dosen: Hendri karisma, S. Kom. Disusun oleh: Asep M. Taufik 10109921 Adi Muhammad Nura 10109924 Hanafi 10109920 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER

Upload: hoangdien

Post on 18-Jan-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

3D Rak Buku

Proposal ini ditujukan untuk memenuhi tugas besar mata kuliah Komputer Grafika

Dosen: Hendri karisma, S. Kom.

Disusun oleh:

Asep M. Taufik 10109921

Adi Muhammad Nura 10109924

Hanafi 10109920

JURUSAN TEKNIK INFORMATIKAFAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIABANDUNG

2013

BAB 1

LATAR BELAKANG

I. Latar belakangPerkembangan teknologi yang sangat pesat sekarang ini tidak dapat kita

hindari. Di sini komputer merupakan salah satu hasil dari perkembangan IPTEK yang

semakin maju. Penggunaan pekerjaan dengan komputer dapat menyelesaikan

pekerjaan dengan lebih efektif dan efisien. Penciptaan akan sebuah teknologi

merupakan sesuatu yang sangat berharga. Inovasi dan kreatifitas yang setiap orang

ciptakan menjadi sebuah karya dimana yang nantinya bisa menjadi sebuah nilai jual.

Banyak sekali ragam teknologi dalam dunia komputer dan teknologi informasi salah

satunya dalam bidang komputer grafika, dimana banyak sekali karya yang dihasilkan

dari komputer grafika ini dengan berbagai macam desain-desain yang dibuat.

Dari sekian banyak desain-desain dari berbagai objek yang dibuat diantaranya

rumah, mobil, gedung, dan objek-objek lain yang terdapat didunia nyata. Dari sekian

banyak objek-objek yang ada kelompok kami tertarik kepada objek rak buku yang

bersandar pada dinding/ tembok. Banyaknya desain-desain menarik dari rak buku

yang beredar di pasaran yang dapat mempengaruhi nilai dan harga jualnya tersendiri.

Disini terdapat rak buku yang memiliki 5 tingkat untuk menempatkan buku-buku

tersebut. Rak buku ini dibentuk dari tiang rak dan alas-alas untuk menyimpan buku

tersebut. Didalam rak buku terdapat sekumpulan buku-buku di setiap tingkatnya. Satu

tingkatan rak buku bisa menyimpan kurang lebih 10 buku. Seperti yang sudah

disebutkan objek rak buku ini dilengkapi dengan latar belakang berupa tembok

dengan desain tumpukan-tumpukan batu bata. Diatas rak buku terdapat jam sebagai

penghias rak buku. Dan di tembok terdapat cermin sebagai penghias juga. Kemudian

juga terdapat objek lantai dasar. Semua object tersebut berbasis 3dimensi yang dapat

di zoom, rotate dan putar.

II. Object List

Objek 3D yang terdapat pada rak buku yang hendak kami bangun antara lain:

1. Jam weker

2. Rak buku

3. Buku

4. Cermin

5. Tembok sebagai latar

III. Objek Pembangun

Objek pembangun untuk membangun 3D ini antara lain:

1. Jam weker

Objek pembangun: Lingkaran dan garis untuk jarum jam.

2. Rak buku

Objek pembangun: persegi panjang sebagai tiang dan persegi untuk penopang

buku.

3. Buku

Objek pembangun: bentuk kotak

4. Cermin

Objek pembangun: persegi

5. Tembok sebagai latar dengan bata

Objek pembangun: persegi panjang untuk menggambarkan tumpukan bata

IV. Teknologi

Aplikasi 3D ini dibangun menggunakan bahasa pemrograman C++ dengan library

OpenGL dan IDE eclipse juga xCode for mac.

BAB 2

PEMBAGIAN TUGAS

2.1. Pembagian tugas anggota kelompok

Pada bab ini akan dituliskan tentang pembagian tugas dari masing-masing

anggota dari kelompok kami dalam kontribusinya untuk membangun aplikasi rak

buku 3D dengan menggunakan OpenGL. Adapun pembagian tugasnya adalah

berdasarkan objek-objek yang akan kami bangun dan diperlukan untuk membangun

rak buku 3D tersebut. Berikut adalah rincian pembagian tugas coding maupun pada

proses penulisan laporannya beserta penggalan source codenya.

Asep M. Taufik [10109921]

Objek cermin kaca

void kaca()

{

//atas

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(0, 43, z-6); //untuk mengatur koordinat 3d

glScalef(3,0.2,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//kanan

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(5.85, 35.4, z-6); //untuk mengatur koordinat 3d

glScalef(0.2,3.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//kiri

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(-6.05, 35.4, z-6); //untuk mengatur koordinat 3d

glScalef(0.2,3.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//bawah

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(0, 28.5, z-6); //untuk mengatur koordinat 3d

glScalef(3,0.2,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//kaca

glColor3f(0.5, 0.5, 0.5);

glPushMatrix();

glTranslatef(-0.1, 35.8, z-6); //untuk mengatur koordinat 3d

glScalef(2.6,3.32,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

}

Objek buku

void buku()

{

//buku rak 3

glColor3f(1.0, 0.0, 0);

glPushMatrix();

glTranslatef(-5.0, 10.3, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.3,1.3,1.2); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 1.0, 0.7);

glPushMatrix();

glTranslatef(-3.0, 10.3, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.3,1.3,1.2); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(1.0, 0.0, 0.5);

glPushMatrix();

glTranslatef(-1.0, 10.3, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.3,1.3,1.2); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(1.0, 1.0, 0.5);

glPushMatrix();

glTranslatef(1.0, 10.3, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.3,1.3,1.2); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.5);

glPushMatrix();

glTranslatef(3.0, 10.3, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.3,1.3,1.2); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.1, 0.1, 0.0);

glPushMatrix();

glTranslatef(5.0, 10.3, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.3,1.3,1.2); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//buku rak 4

glColor3f(0.2, 0.0, 0.2);

glPushMatrix();

glTranslatef(-6.0, 17.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.3, 0.8, 0.1);

glPushMatrix();

glTranslatef(-4.0, 17.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.3, 0.1, 0.5);

glPushMatrix();

glTranslatef(-2.0, 17.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.1, 0.5);

glPushMatrix();

glTranslatef(0.0, 17.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.1, 1.0);

glPushMatrix();

glTranslatef(2.0, 17.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.3, 1.0);

glPushMatrix();

glTranslatef(4.0, 17.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.1, 0.2, 0.1);

glPushMatrix();

glTranslatef(6.0, 17.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//buku rak 2

glColor3f(0.0, 0.0, 0.2);

glPushMatrix();

glTranslatef(-6.0, 2.5, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.4);

glPushMatrix();

glTranslatef(-4.0, 2.5, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.3, 0.0, 0.0);

glPushMatrix();

glTranslatef(-2.0, 2.5, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.1, 0.2);

glPushMatrix();

glTranslatef(0.0, 2.5, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.0, 0.3);

glPushMatrix();

glTranslatef(2.0, 2.5, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.0, 0.2);

glPushMatrix();

glTranslatef(4.0, 2.5, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.0, 0.1);

glPushMatrix();

glTranslatef(6.0, 2.5, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//buku rak 1

glColor3f(0.1, 0.0, 0.2);

glPushMatrix();

glTranslatef(-6.0, -5.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.1, 0.4);

glPushMatrix();

glTranslatef(-4.0, -5.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.2, 0.0);

glPushMatrix();

glTranslatef(-2.0, -5.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.1, 0.2);

glPushMatrix();

glTranslatef(0.0, -5.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.3, 0.1);

glPushMatrix();

glTranslatef(2.0, -5.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.2);

glPushMatrix();

glTranslatef(4.0, -5.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.3);

glPushMatrix();

glTranslatef(6.0, -5.0, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.4,1.1,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

}

Objek tembok

void tembok()

{

//tembok

glColor3f(0.6, 0.3, 0);

glPushMatrix();

glTranslatef(0.0, 16, z -7); //untuk mengatur koordinat 3d

glScalef(10,13,1.0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

}

Void Rak buku untuk memanggil semua void objek yang telah dibuat.

void rakbuku()

{

glRotatef(sudut,x1,y1,z1); //untuk rotate

tembok();

batubata();

kaca();

jam();

buku();

tiang();

}

void timer(int value){

glutPostRedisplay();

glutTimerFunc(25,timer,0);

}

void resize(void)

{

glClearColor(1.0,9.0,1.0,0.0); //blackground

glShadeModel(GL_MODELVIEW);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective(50.0,1.5,10.0,1000.0);

}

Void display untuk menampilkan semua objek yang telah dibuat ke windows.

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_MODELVIEW);

glClearColor(1,1,1,1);

glLoadIdentity();

glTranslatef(0,0,-100);// besar kecilnya rak

//Loop++;

// glRotatef(Loop,0.9,4.0,0.6);//rak yang berotasi

rakbuku();

glFlush();

glutSwapBuffers();

}

void tampil()

{

display();

}

Adi Muhammad Nura [1010924]

Objek corak batu bata ditembok.

void batubata()

{

//batu bata

//baris 1

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris2

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 40, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 40, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 3

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris4

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 35, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 35, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 5

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

... dan seterusnya sampai dengan baris ke-22 dengan syntak yang hamper sama,untuk

detailnya,terlampir di bab 3 pada source code.

Objek jam

void jam()

{

//bulatan jam

glColor3f(1.0, 0.2, 0.5);

glPushMatrix();

glTranslatef(0.0, 24, z); //untuk mengatur koordinat 3d

glScalef(1,1,1.0); //untuk mengatur ukuran benda

glutSolidSphere(2, 20, 10);

glPopMatrix();

//penopang jam kanan

glColor3f(1, 1, 1);

glPushMatrix();

glTranslatef(2, 22.5, z); //untuk mengatur koordinat 3d

glScalef(0.1,0.7,0.1); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//penopang jam kiri

glColor3f(1, 1, 1);

glPushMatrix();

glTranslatef(-2, 22.5, z); //untuk mengatur koordinat 3d

glScalef(0.1,0.7,0.1); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//penopang jam bawah

glColor3f(1, 1, 1);

glPushMatrix();

glTranslatef(0, 21.5, z); //untuk mengatur koordinat 3d

glScalef(1.2, 0.1, 0.1); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//jarum jam

glColor3f(1, 1, 0.2);

glPushMatrix();

glTranslatef(0.58, 24, z); //untuk mengatur koordinat 3d

glScalef(0.29,0.05,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//jarum menit

glColor3f(1, 1, 0.2);

glPushMatrix();

glTranslatef(0.05, 24.8, z); //untuk mengatur koordinat 3d

glScalef(0.05,0.40,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

}

Objek tiang rak buku

void tiang()

{

//TIANG

//Tiang Kiri Depan

glColor3f(0.5, 0.5, 0.5);

glPushMatrix();

glTranslatef(-7.5, 5.0, z+ 2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

//Tiang Kiri Belakang

glPushMatrix();

glTranslatef(-7.5, 5.0, z-2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

//Tiang Kanan Depan

glPushMatrix();

glTranslatef(7.5, 5.0, z+2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

//Tiang Kanan Belakang

glPushMatrix();

glTranslatef(7.5, 5.0, z-2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

glColor3f(0.0, 0.0, 0);

//rak 1

glPushMatrix();

glTranslatef(0.0, 0.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak2

glPushMatrix();

glTranslatef(0.0, -7.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak3

glPushMatrix();

glTranslatef(0.0, 7.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak4

glPushMatrix();

glTranslatef(0.0, 14.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak5

glPushMatrix();

glTranslatef(0.0, 21.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

}

Setting keyboard untuk mengendalikan gerak kamera

void myKeyboard(unsigned char key, int x, int y){

if (key =='a') z+=1;

else if (key == 'd') z-=1;

else if (key == 'x') {

x1=1;

y1=0;

z1=0;

sudut+=5;

}

else if (key == 'y') {

y1=1;

x1=0;

z1=0;

sudut+=-5;

}

else if (key == 't') {

y1=1;

x1=0;

z1=0;

sudut-=-5;

}

else if (key == 'z') {

y1=0;

x1=0;

z1=1;

sudut+=-5;

}

else if (key == 'c') {

y1=0;

x1=0;

z1=1;

sudut-=-5;

}

}

Hanafi [10109920]

Bertugas dan memiliki tanggung jawab dalam perancangan proposal hinggal menjadi

laporan akhir dan siap untuk diserahkan ke dosen.

BAB 3

SOURCE CODE

#include <GLUT/glut.h>

#include <stdio.h>

int w=400, h=400, z=0;

int x1=0, y1=0, sudut=0, z1=0;

void kaca()

{

//atas

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(0, 43, z-6);

glScalef(3,0.2,0);

glutSolidCube(4.2f);

glPopMatrix();

//kanan

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(5.85, 35.4, z-6);

glScalef(0.2,3.5,0);

glutSolidCube(4.2f);

glPopMatrix();

//kiri

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(-6.05, 35.4, z-6);

glScalef(0.2,3.5,0);

glutSolidCube(4.2f);

glPopMatrix();

//bawah

glColor3f(0, 0, 0);

glPushMatrix();

glTranslatef(0, 28.5, z-6);

glScalef(3,0.2,0);

glutSolidCube(4.2f);

glPopMatrix();

//kaca

glColor3f(0.5, 0.5, 0.5);

glPushMatrix();

glTranslatef(-0.1, 35.8, z-6);

glScalef(2.6,3.32,0);

glutSolidCube(4.2f);

glPopMatrix();

}

void jam()

{

//bulatan jam

glColor3f(1.0, 0.2, 0.5);

glPushMatrix();

glTranslatef(0.0, 24, z); //untuk mengatur koordinat 3d

glScalef(1,1,1.0); //untuk mengatur ukuran benda

glutSolidSphere(2, 20, 10);

glPopMatrix();

//penopang jam kanan

glColor3f(1, 1, 1);

glPushMatrix();

glTranslatef(2, 22.5, z); //untuk mengatur koordinat 3d

glScalef(0.1,0.7,0.1); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//penopang jam kiri

glColor3f(1, 1, 1);

glPushMatrix();

glTranslatef(-2, 22.5, z); //untuk mengatur koordinat 3d

glScalef(0.1,0.7,0.1); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//penopang jam bawah

glColor3f(1, 1, 1);

glPushMatrix();

glTranslatef(0, 21.5, z); //untuk mengatur koordinat 3d

glScalef(1.2, 0.1, 0.1); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//jarum jam

glColor3f(1, 1, 0.2);

glPushMatrix();

glTranslatef(0.58, 24, z); //untuk mengatur koordinat 3d

glScalef(0.29,0.05,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//jarum menit

glColor3f(1, 1, 0.2);

glPushMatrix();

glTranslatef(0.05, 24.8, z); //untuk mengatur koordinat 3d

glScalef(0.05,0.40,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

}

void tembok()

{

glColor3f(0.6, 0.3, 0);

glPushMatrix();

glTranslatef(0.0, 16, z -7);

glScalef(10,13,1.0);

glutSolidCube(4.2f);

glPopMatrix();

}

void batubata()

{

//batu bata

//baris 1

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 42.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris2

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 40, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 40, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 40, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 3

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 37.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris4

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 35, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 35, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 35, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 5

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 32.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris6

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 30, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 30, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 30, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 30, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 30, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 30, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 30, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 7

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 27.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 27.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 27.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 27.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 27.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 27.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris8

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 25, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 25, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 25,z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 25, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 25, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 25, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 25, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 9

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 22.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 22.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 22.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 22.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 22.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 22.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris10

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 20, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 20, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 20, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 20, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 20, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 20, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 20, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 11

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 17.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 17.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 17.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 17.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 17.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 17.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 12

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 15, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 15, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 15, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 15, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 15, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 15, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 15, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 13

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 12.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 12.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 12.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 12.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 12.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 12.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 14

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 10, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 10, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 15

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 16

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 5, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 5, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 17

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, 2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, 2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, 2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, 2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, 2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, 2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 18

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, 0, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, 0, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, 0, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, 0, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, 0, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, 0, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, 0, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 19

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, -2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, -2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, -2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, -2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, -2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, -2.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 20

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, -5, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, -5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, -5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, -5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, -5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, -5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, -5, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris 21

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-17.5, -7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-10.5, -7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(-3.5, -7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(3.5, -7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(10.5, -7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6,0, 0);

glPushMatrix();

glTranslatef(17.5, -7.5, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

//baris22

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-19.5, -10, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-14.0, -10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(-7.0, -10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(0, -10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(7.0, -10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(14.0, -10, z -7); //untuk mengatur koordinat 3d

glScalef(1.5,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.0, 0);

glPushMatrix();

glTranslatef(19.5, -10, z -7); //untuk mengatur koordinat 3d

glScalef(0.9,0.5,0); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

}

void tiang()

{

//TIANG

//Tiang Kiri Depan

glColor3f(0.5, 0.5, 0.5);

glPushMatrix();

glTranslatef(-7.5, 5.0, z+ 2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

//Tiang Kiri Belakang

glPushMatrix();

glTranslatef(-7.5, 5.0, z-2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

//Tiang Kanan Depan

glPushMatrix();

glTranslatef(7.5, 5.0, z+2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

//Tiang Kanan Belakang

glPushMatrix();

glTranslatef(7.5, 5.0, z-2.5);

glScalef(0.15,7.0,0.25);

glutSolidCube(4.5f);

glPopMatrix();

glColor3f(0.0, 0.0, 0);

//rak 1

glPushMatrix();

glTranslatef(0.0, 0.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak2

glPushMatrix();

glTranslatef(0.0, -7.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak3

glPushMatrix();

glTranslatef(0.0, 7.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak4

glPushMatrix();

glTranslatef(0.0, 14.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

//rak5

glPushMatrix();

glTranslatef(0.0, 21.0, z);

glScalef(3.0,0.09,1.5);

glutSolidCube(6.0f);

glPopMatrix();

}

void buku()

{

//buku rak 3

glColor3f(1.0, 0.0, 0);

glPushMatrix();

glTranslatef(-5.0, 10.3, z -1.5); //untuk mengatur koordinat 3d

glScalef(0.3,1.3,1.2); //untuk mengatur ukuran benda

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 1.0, 0.7);

glPushMatrix();

glTranslatef(-3.0, 10.3, z -1.5);

glScalef(0.3,1.3,1.2);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(1.0, 0.0, 0.5);

glPushMatrix();

glTranslatef(-1.0, 10.3, z -1.5);

glScalef(0.3,1.3,1.2);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(1.0, 1.0, 0.5);

glPushMatrix();

glTranslatef(1.0, 10.3, z -1.5);

glScalef(0.3,1.3,1.2);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.5);

glPushMatrix();

glTranslatef(3.0, 10.3, z -1.5);

glScalef(0.3,1.3,1.2);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.1, 0.1, 0.0);

glPushMatrix();

glTranslatef(5.0, 10.3, z -1.5);

glScalef(0.3,1.3,1.2);

glutSolidCube(4.2f);

glPopMatrix();

//buku rak 4

glColor3f(0.2, 0.0, 0.2);

glPushMatrix();

glTranslatef(-6.0, 17.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.3, 0.8, 0.1);

glPushMatrix();

glTranslatef(-4.0, 17.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.3, 0.1, 0.5);

glPushMatrix();

glTranslatef(-2.0, 17.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.6, 0.1, 0.5);

glPushMatrix();

glTranslatef(0.0, 17.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.1, 1.0);

glPushMatrix();

glTranslatef(2.0, 17.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.3, 1.0);

glPushMatrix();

glTranslatef(4.0, 17.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.1, 0.2, 0.1);

glPushMatrix();

glTranslatef(6.0, 17.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

//buku rak 2

glColor3f(0.0, 0.0, 0.2);

glPushMatrix();

glTranslatef(-6.0, 2.5, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.4);

glPushMatrix();

glTranslatef(-4.0, 2.5, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.3, 0.0, 0.0);

glPushMatrix();

glTranslatef(-2.0, 2.5, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.1, 0.2);

glPushMatrix();

glTranslatef(0.0, 2.5, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.0, 0.3);

glPushMatrix();

glTranslatef(2.0, 2.5, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.0, 0.2);

glPushMatrix();

glTranslatef(4.0, 2.5, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.0, 0.1);

glPushMatrix();

glTranslatef(6.0, 2.5, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

//buku rak 1

glColor3f(0.1, 0.0, 0.2);

glPushMatrix();

glTranslatef(-6.0, -5.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.1, 0.4);

glPushMatrix();

glTranslatef(-4.0, -5.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.2, 0.0);

glPushMatrix();

glTranslatef(-2.0, -5.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.1, 0.2);

glPushMatrix();

glTranslatef(0.0, -5.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.2, 0.3, 0.1);

glPushMatrix();

glTranslatef(2.0, -5.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.2);

glPushMatrix();

glTranslatef(4.0, -5.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

glColor3f(0.0, 0.0, 0.3);

glPushMatrix();

glTranslatef(6.0, -5.0, z -1.5);

glScalef(0.4,1.1,1.0);

glutSolidCube(4.2f);

glPopMatrix();

}

void rakbuku()

{

glRotatef(sudut,x1,y1,z1);

tembok();

batubata();

kaca();

jam();

buku();

tiang();

}

void timer(int value){

glutPostRedisplay();

glutTimerFunc(25,timer,0);

}

void resize(void)

{

glClearColor(1.0,9.0,1.0,0.0); //background

glShadeModel(GL_MODELVIEW);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective(50.0,1.5,10.0,1000.0);

}

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_MODELVIEW);

glClearColor(1,1,1,1);

glLoadIdentity();

glTranslatef(0,0,-100);

rakbuku();

glFlush();

glutSwapBuffers();

}

void tampil()

{

display();

}

void Keyboard(unsigned char key, int x, int y){

if (key =='w') z+=1;

else if (key == 's') z-=1;

else if (key == 'x') {

x1=1;

y1=0;

z1=0;

sudut+=5;

}

else if (key == 'c') {

y1=1;

x1=0;

z1=0;

sudut+=-5;

}

else if (key == 'z') {

y1=1;

x1=0;

z1=0;

sudut-=-5;

}

else if (key == 'f') {

y1=0;

x1=0;

z1=1;

sudut+=-5;

}

else if (key == 'g') {

y1=0;

x1=0;

z1=1;

sudut-=-5;

}

}

/*

keterangan keyboard

zoom = w

outzoom = s

turning vertical = x

turning horizontal(to right) = c

turning horizontal(to left) = z

memutar searah jarum jam = f

memutar berlawanan jarum jam = g

*/

int main(int argc,char **argv)

{

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH);

glutInitWindowPosition(10,10);

glutInitWindowSize(1000,700);

glutCreateWindow("GAMBAR 3D RAK BUKU");

glClearColor(0.5,0.5,0.0,0.0);

glutDisplayFunc(display);

gluOrtho2D(-320., 320., -240.0, 240.0);

glutIdleFunc(tampil);

resize();

glutKeyboardFunc(Keyboard);

glutTimerFunc(25, timer, 0);

glutMainLoop();

return(0);

}

HASIL CAPTURE

1. Objek Cermin

2. Objek Jam

3. Objek Tembok

4. Objek Batu bata

5. Objek Buku

6. Objek Tiang

1. Gambar Penuh (1)

2. Gambar Penuh (2)

3. Gambar Penuh (3)