Monday 19 June 2017

Example Projek Mobil 3D dengan OpenGl C++ dan C di CodeBlock



PENGUMUMAN

  " Projek ini Dibuat dengan Benar sudah berjalan secara semestinya. apabila ada ERROR di code silahkan pelajari dimana letak errornya. jangan hanya mau disuapi saja. mengcopi ini = harus mempelajari  sourcodenaya sendiri. 

Jangan Lupa Ucapkan Terimakasih di kolom komentar Jika Projeknya berhasil dijalankan. 

dan untuk Glut download sementara saya tutup, jika ingin mendownload silahkan komentar dibawah "tujuan kalian belajar OPENGL beserta email kalian". nanti saya bagikan lewat email kalian yang ada dikolom komentar. (komentar tidak akan muncul jika belum disetujui dan belum dikirim openGLnya ke email kalian)"

Tentang Projek 

Pada Projek Kali ini kita akan membuat projek openGL C++ dan C dengan menggunakan cobeblock. pada projek ini kita akan membuat sebuah mobil 3D sederhana. sekenario dari projek ini adalah membuat sebuah projek openGL++ menggunakan codeBlock pemrograman C++ dan C. projek ini diharuskan menggunakan translasi berupa putaran pada kendaraan mobil. 

Pada Example projek ini dibuat sangat mudah untuk difahami dan digunakan, kemudian  lengkap dengan sourcodenya sehingga dapat langsung digunakan . tujuan dibuatnya artikel ini adalah agar semua projek berjalan dengan lancar dana dapat digunakan untuk menyelesaikan tugas kuliah maupun tugas yang lainnya yang berhubungan dangan pemrograman OpenGl.

projek yang akan kita buat hasilnya aka seperti diatas.  jika anda penasaran dengan cara membuatnya maka ikuti langkah-langkah dibawah ini dengan runtut dan benar.

Persiapan Projek

Untuk memulai membuat projek open GL ini anda harus menseting beberapa komponen kedalam codeblock dan ketika sudah selesai menseting semuanya saatnya membuat projeknya. untul langkah-langkah persiapannya dapat melakukan beberapa langkah-langkah dibawah ini.

  1. Open GL download disini :View openGL
  2. CodeBlock setting dengan openGL caranya lihat disini: view
  3. buka codeblock dan buat projek baru caranya dapat dilihat disini : view
  4. copy semua sourcode yang tersedia di blog ini.
silahkan copy contoh program dibawah ini ke projek yang anda buat. adapun sourcode yang akan anda coba adalah sebagai berikut.

  

    #include <Gl/glut.h> #include <math.h> void cylinder(float alas,float atas,float tinggi); void kerucut(float ngisor, float nduwur, float dowo); void blok(float tebal,int ratiol,int ratiop); GLfloat source_light[]={0.30,0.30,0.30,0.50}; double Loop,LoopAll=0; void kendaraan(void) { glClearColor(0.0,1.0,0.0,0.0); //blackground glShadeModel(GL_SMOOTH); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(50.0,1.5,10.0,1000.0); glEnable (GL_DEPTH_TEST); glPolygonMode (GL_FRONT_AND_BACK,GL_FILL); glEnable (GL_LIGHTING); glLightfv (GL_LIGHT7,GL_DIFFUSE,source_light); glEnable (GL_LIGHT7); glEnable (GL_COLOR_MATERIAL); glColorMaterial (GL_FRONT_AND_BACK,GL_AMBIENT); } void display(void) { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); /* Keterangan: glTranslatef :untuk menempatkan pada posisi yang tepat dengan sumbu (x, y, z) glRotated : untuk memutar objek agar sesuai dengan keinginan. cylinder: untuk membentuk model tabung */ glTranslatef(0,0,-100);// besar kecilnya mobil Loop++; glRotatef(Loop,0.9,4.0,0.6);//mobil yang berotasi glPushMatrix();//body //glpushmatrix(); glColor3f(0.0,1.0,0.0); blok(10, 3, 2); glTranslatef(0, 9, 0); blok(10, 3, 2); glTranslatef(10, -10,0); blok(10, 5.5, 2); glRotatef(-35, 0, 0, 15); glTranslatef(0, 7,0); blok(10, 2, 2); glTranslatef(2, 4.9,-2.5); glColor3f(0.0,0.0,0.0);// warna kaca depan blok(0.5, 20, 31); glRotatef(180, 45, -45, 0); glPopMatrix(); glPushMatrix();//roda kanan depan glColor3f(1.0,0.0,0.0); glTranslatef(20, -8,-7); cylinder(5, 5,3); glColor3f(1.0,0.0,0.0); // roda belakang kanan glTranslatef(-20, 8,7); glTranslatef(-5, -8,-7); cylinder(5, 5,3); glColor3f(1.0,0.0,0.0);// roda belakang kiri glTranslatef(5, 8,7); glRotatef(180,0,180,0); glTranslatef(3,-8,-17); cylinder(5, 5,3); glColor3f(1.0,0.0,0.0); // roda depan kiri glTranslatef(-3,8,17); glTranslatef(-22,-8,-17); cylinder(5, 5,3); glColor3f(0.0,0.0,0.0); // all kaca samping kanan dan kiri glRotatef(90,1,0,0); glTranslatef(8, 2.5,-15); blok(2, 4, 5); glRotatef(90,0,1,0); glTranslatef(0,-0.2,7); blok(2, 4, 8); glColor3f(0.0,0.0,0.0); glRotatef(0,0,0,0); glTranslatef(0,19.2,0); blok(2, 4, 8); glColor3f(0.0,0.0,0.0); glRotatef(90,0,1,0); glTranslatef(7, 0,-8); blok(2, 4, 5); glColor3f(9.9,9.9,0.0);//lampu glRotatef(90,0,1,0); glTranslatef(0,-3,20); cylinder(2, 2,3); glColor3f(9.9,9.9,0.0);//lampu glRotatef(0,0,0,0); glTranslatef(0,-12,0); cylinder(2, 2,3); glColor3f(1.0,1.0,1.0);//knalpot kanan glRotatef(0,0,0,0); glTranslatef(0,-0.5,-52); cylinder(2, 1,3); glColor3f(1.0,1.0,1.0);//knalpot kiri glRotatef(0,0,0,0); glTranslatef(0,11.5,0); cylinder(2, 1,3); glColor3f(0.0,0.0,0.0); // kaca belakang glRotatef(90,1,0,0); glTranslatef(-7,3.5,-0.5); // geser bawah,kedalam, geser kiri blok(2, 6.0, 7.0); glPopMatrix(); glFlush(); glutSwapBuffers(); } void kerucut(float bottom, float up, float width) { float i; glPushMatrix(); glTranslatef(1.0,0.0,bottom/24); glutSolidCone(bottom,0,32,4); for(i=0;i<=width;i+=bottom/24) { glTranslatef(0.0,0.0,bottom/24); glutSolidTorus(bottom/4,bottom-((i*(bottom-up))/width),16,16); } glTranslatef(0.0,0.0,bottom/4); glutSolidCone(up,0,20,1); glColor3f(0.,1.,1.); glPopMatrix(); } void cylinder(float alas,float up,float height) { float i; glPushMatrix(); glTranslatef(1.0,0.0,-alas/8); // perpindahan dari X,Y,Z glutSolidCone(alas,0,32,4); for(i=0;i<=height;i+=alas/24) { glTranslatef(0.0,0.0,alas/24); glutSolidTorus(alas/4,alas-((i*(alas-up))/height),16,16); } glTranslatef(0.0,0.0,alas/4); glutSolidCone(height,0,20,1); glColor3f(0.,0.,0.); glPopMatrix(); } void blok(float tebal,int ratiol,int ratiop) { float i,j; glPushMatrix(); for(i=0;i<ratiop;i++) { glTranslatef(-(ratiol+1)*tebal/2,0.0,0.0); for(j=0;j<ratiol;j++) { glTranslatef(tebal,0.0,0.0); glutSolidCube(tebal); } glTranslatef(-(ratiol-1)*tebal/2,0.0,tebal); } glPopMatrix(); } void munculsih() { display(); } int main(int argc,char **argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);//|GLUT_DEPTH); glutInitWindowPosition(10,10); glutInitWindowSize(500,600); glutCreateWindow("Mobil"); glClearColor(0.5,0.5,0.0,0.0); glutDisplayFunc(display); gluOrtho2D(-320., 320., -240.0, 240.0); glutIdleFunc(munculsih); kendaraan(); glutMainLoop(); return(0); }



kemudian build and run program tersebut.. atau bisa memencet tombol f9 maka hasilnya seperti ini.


taraaaaa......


selamat mencoba dan semoga berhasil.... dan semangat belajarnya ok.
jangan lupa berkomentar kesan-kesannya setelah mencobanya. dan juga bila ada pertanyaan silahkan tanyakan dibawah.



Daftar pustaka

  1. http://kuli-kuliah.blogspot.co.id/2012/04/mobil-3d-c-tugas-grafika-komputer.html


No comments:

Post a Comment

Tingkat keanekaragaman hayati tingkat gen

Tingkat keanekaragaman hayati tingkat gen -- Keanekaragaman hayati adalah sebuah istilah untuk menggambarkan keanekaragaman mahluk hidup di ...