Upload
hoangdien
View
216
Download
0
Embed Size (px)
Citation preview
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