Membuat Animasi Revolusi Bumi Terhadap Matahari Dengan OpenGL Menggunakan CodeBlocks

Assalamualaikum warohmatullahi wabarokatuh

Programmer Bojonegoro - Beberapa waktu yang lalu, dunia dihebohkan dengan teori konspirasi bumi datar. Banyak sekali tokoh yang angkat bicara dan berdebat mengenai bentuk bumi yang kita tinggali ini, mulai dari professor, doktor, ilmuwan, peneliti, ulama, bahkan orang awam.

Nah, kalau menurut temen-temen bagaimana? Bumi itu bulat apa datar? hahaha ...

Bagi saya sendiri, permasalahan apakah bumi itu bulat atau datar adalah permasalahan yang tidak perlu dipermasalahkan. Karena masalah tidak akan jadi masalah kalau tidak dipermasalahkan hehehe ...

Maksudnya gimana mas?

Maksudnya begini, permasalahan apakah bumi itu bulat atau datar bukanlah permasalahan aqidah(dibaca: Akidah Islam). Artinya tidak akan menjadi kafir apabila kita meyakini kalau bumi itu berbentuk bulat atau datar.

Maka dari itu, tidak layak bagi kaum muslimin berpecah belah dalam hal ini, saling mencela, menyindir, dan bermusuhan dalam rangka mendukung pendapatnya.

Apakah bumi itu bulat atau datar, maka kembalikan kepada hasil penelitian dan fakta ilmiah yang dijabarkan oleh para ahlinya dalam masalah ini. Allah SWT berfirman,

فَاسْأَلُوا أَهْلَ الذِّكْرِ إِنْ كُنْتُمْ لَا تَعْلَمُونَ


“Maka bertanyalah kepada orang yang mempunyai ilmu jika kamu tidak mengetahui” (Q.S An-Nahl:43).

Yang lebih penting daripada "bumi itu bulat atau datar" adalah kita hidup diatas bumi, dan kita pasti akan meninggalkan kehidupan dibumi menuju kampung akhirat yang kekal. Tidak peduli bagaimanapun bentuk bumi, jadikanlah bumi ini sebagai tempat mencari bekal untuk pulang ke kampung akhirat yaitu bekal iman, takwa, dan amal kebaikan yang bermanfaat bagi manusia dan makhluk dimuka bumi ini.

Oke, saya rasa cukup intermezzo dan sedikit tausiyahnya wkwkwk ... 

Kembali pada topik utama dari postingan ini yaitu tentang cara membuat animasi revolusi bumi terhadap matahari dengan opengl menggunakan codeblocks.

Apa itu revolusi bumi?
Revolusi bumi adalah peredaran bumi mengelilingi matahari. Bumi mengelilingi matahari pada orbitnya dalam sekali tempuh selama 365¼ hari.

Btw, semua sepakat kan kalau bumi berevolusi terhadap matahari? atau ada yang punya pendapat lain? hahaha ...

Kalau semua telah sepakat, maka berikut saya bagikan source code untuk membuat animasi revolusi bumi terhadap matahari dengan opengl menggunakan codeblocks.

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

float rot=0;
void rotation( float x){
    if(rot<360){
        rot+=x;
    }else{
        rot-=360;
    }
}

/* GLUT callback Handlers */
void myinit()
{
 glClearColor(0.0, 0.0, 0.0, 1.0);
 glColor3f(1.0, 0.0, 0.0);
 gluOrtho2D(-120.0, 120.0, -120.0, 120.0);
}

void lingkaran(char GL, float o, float x, float y, float R, float G, float B)
{
    glBegin(GL);
    for(float i=0.0; i<=6.28; i+=0.01){
        glColor3f(R,G,B);
        glVertex3f(sin(i)*o+x, cos(i)*o+y, 0);
    }
    glEnd();
}

void light()
{
    glColor3f(1.0,1.0,0.0);
    glBegin(GL_POLYGON);
        glVertex2f(0.0,30.0);
        glVertex2f(5.0,18.0);
        glVertex2f(-5.0,18.0);
    glEnd();
}

void sunlight()
{
    glPushMatrix();
    glRotated(rot,0,0,1);
    for(float r=-45; r>=-315; r-=45){
        glPushMatrix();
        light();
        glRotated(r,0,0,1);
        light();
        glPopMatrix();
    }
    glPopMatrix();
}

void satellite()
{
    // Orbit Moon
    lingkaran(GL_LINE_LOOP,25,65.0,-45.0,1.0,1.0,1.0);
    // Moon
    glPushMatrix();
    glTranslated(sin(rot*0.07)*24,cos(rot*0.07)*24,0);
        lingkaran(GL_POLYGON,5,65.0,-45.0,1.0,1.0,0.0);
    glPopMatrix();
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    rotation(0.1);
    //Sun
    lingkaran(GL_POLYGON,15,0.0,0.0,1.0,1.0,0.0);
    //sunLight
    sunlight();
    //Orbit Earth
    lingkaran(GL_POINTS,79,0.0,0.0,1.0,1.0,1.0);
    //Earth
    glPushMatrix();
    glRotated(rot,0,0,1);
        lingkaran(GL_POLYGON,10,65.0,-45.0,0.0,1.0,0.0);
    glPopMatrix();
    //Satellite
    glPushMatrix();
    glRotated(rot,0,0,1);
        satellite();
    glPopMatrix();
    glFlush ();
}

void mouse(int button, int state, int x, int y)
{
    switch (button)
    {
        case GLUT_LEFT_BUTTON:
            if (state == GLUT_DOWN)
                glutIdleFunc(display);
            break;
        case GLUT_MIDDLE_BUTTON:
        case GLUT_RIGHT_BUTTON:
            if (state == GLUT_DOWN)
                glutIdleFunc(NULL);
            break;
        default:
            break;
    }
 }

int main(int argc, char *argv[])
{
    glutInitWindowSize(600,600);
    glutInitWindowPosition(400,50);
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    glutCreateWindow("Revolusi Bumi | Programmer Bojonegoro");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    myinit();
    glutMainLoop();
}

Berikut screenshoot hasil running program animasi revolusi bumi terhadap matahari.

Membuat Animasi Revolusi Bumi Terhadap Matahari Dengan OpenGL Menggunakan CodeBlocks

Note: klik kiri untuk menjalankan animasi, dan klik kanan untuk menghentikan animasi.

Alhamdulillah, itulah source code untuk membuat animasi revolusi bumi terhadap matahari dengan opengl di codeblocks.
Baca juga: Cara Membuat Papan Catur 8x8 3D Menggunakan OpenGL
Semoga bermanfaat dan menambah wawasan teman-teman semua

Terimakasih

Wassalamualaikum warohmatullahi wabarokatuh

Previous
Next Post »
Thanks for your comment