Thursday 22 June 2017

Membuat 3D planet bumi mengelilingi matahari OpenGL C++ projek




hoho... semangat teman teman pembaca blog saya. kali ini kita akan membuat 2 planet yang saling bertranslasi. ini adalah tugas praktek dari kampus.. ya cuma nyontek-nyontek dikit ke tetangga sebelah. baiklah langsung saja ini dia langkah-langkahnya.


Untuk bisa membuat projek seperti diatas anda harus menyiapkan beberapa hal dalam penyetingan di komoputer anda yang berkaitan dengan openGL. diantaranya yaitu :
  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.




Reverensi




#include <windows.h>
#include <stdlib.h>
#include <GL/glut.h>

static int year1=0, day1=0, year2=0, day2=0;

void init(void) {
glClearColor(0.0,0.0,0.0,0.0);
GLfloat mat_specular[]={1.0,1.0,1.0,1.0};
GLfloat mat_shininess[]={50.0};
GLfloat light_position0[]={1.0,1.0,1.0,0.0};
glClearColor(0.0,0.0,0.0,0.0);
glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);
glLightfv(GL_LIGHT0,GL_POSITION,light_position0);
    GLfloat light_position1[] = {-1.0f, 0.5f, 0.5f, 0.0f};
    glLightfv(GL_LIGHT1, GL_POSITION, light_position1);
    glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glEnable(GL_NORMALIZE);
glEnable(GL_DEPTH_TEST);
}

void display(void) {
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
    glPushMatrix();
    glutSolidSphere(1.0,20,16);
glRotatef((GLfloat)year1,0.0,1.0,0.0);
glTranslatef(2.0,0.0,0.0);
glRotatef((GLfloat)day1,0.0,1.0,0.0);
glutSolidSphere(0.2,10,8);
glPopMatrix();
glPushMatrix();
glRotatef((GLfloat)year2,0.0,1.0,1.0);
glTranslatef(2.0,1.0,0.0);
glRotatef((GLfloat)day2,0.0,1.0,0.0);
glutSolidSphere(0.2,10,8);
glPopMatrix();

glutSwapBuffers();
}

void reshape(int w, int h) {
glViewport(0,0,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

gluPerspective(40.0,(GLfloat)w/(GLfloat)h,1.0,20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

gluLookAt(0.0,0.0,8.0,0.0,0.0,0.0,0.0,1.0,0.0);
}

void keyboard(unsigned char key, int x, int y) {
switch(key) {
case 'd':
day1=(day1+15)%360; glutPostRedisplay();
day2=(day2-10)%360; glutPostRedisplay();
break;
case 'y':
year1=(year1+10)%360; glutPostRedisplay();
year2=(year2-5)%360; glutPostRedisplay();
break;
}
}

int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
glutInitWindowSize(600,600);
glutInitWindowPosition(0,0);
glutCreateWindow("UJIAN");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}



kemudian jalankan dengan menekan tombol f9. dan..... ini dia hasilnya....


kalau hasilnya seperti diatas... selamat anda berhasil melakukan tutorialnya.
kamu bisa menekan tombol berikut ini untuk menjalankan animasinya.

  • tombol  'y' untuk mentranslasikan alias muter ke sekeliling pelanet besar
  • tombol 'd' untuk memutar planet kecil

demikian tutorial kali ini semoga bermanfaat dan selamat mencoba. kalau berhasil jangan lupa komennya gan... biar nanti bisa diperbaiki kalau ada kesalahan. terimakasih....

Reverensi




Daftar pustaka
  1. https://ekorkucingid.blogspot.co.id/2013/06/cara-membuat-matahari-dan-planet-dengan.html




Contoh Projek 3D lainnya.


Baca Juga Projek OpenGL dengan C++ Lainnya  dibawah ini :

 Contoh Projek 2D openGL

Baca juga Animasi 2D untuk projek openGL lainnya dibawah ini

Dasar OpenGL

Baca juga Dasar Dari OpenGL dibawah ini jika kalian ingin menekuninya.


1 comment:

Tingkat keanekaragaman hayati tingkat gen

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