Membuat Gambar Susunan Planet Dalam Tata Surya Dengan OpenGL Menggunakan CodeBlocks
Desember 25, 2017
Add Comment
Kemarin saya telah memposting tentang Cara Membuat Animasi Revolusi Bumi Terhadap Matahari Dengan OpenGL, kali ini saya akan membagikan source code untuk Membuat Gambar Susunan Planet Dalam Tata Surya Dengan OpenGL Menggunakan CodeBlocks.
Apa itu Tata Surya?
Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Tata Surya adalah kumpulan benda langit yang terdiri atas sebuah bintang yang disebut Matahari dan semua objek yang terikat oleh gaya gravitasinya. Objek-objek tersebut termasuk delapan buah planet yang sudah diketahui dengan orbit berbentuk elips, lima planet kerdil/katai, 173 satelit alami yang telah diidentifikasi, dan jutaan benda langit (meteor, asteroid, komet) lainnya.
Tata Surya terbagi menjadi Matahari, empat planet bagian dalam, sabuk asteroid, empat planet bagian luar, dan di bagian terluar adalah Sabuk Kuiper dan piringan tersebar. Awan Oort diperkirakan terletak di daerah terjauh yang berjarak sekitar seribu kali di luar bagian yang terluar.
Berdasarkan jaraknya dari Matahari, kedelapan planet Tata Surya ialah Merkurius (57,9 juta km), Venus (108 juta km), Bumi (150 juta km), Mars (228 juta km), Yupiter (779 juta km), Saturnus (1.430 juta km), Uranus (2.880 juta km), dan Neptunus (4.500 juta km). Sejak pertengahan 2008, ada lima objek angkasa yang diklasifikasikan sebagai planet kerdil. Orbit planet-planet kerdil, kecuali Ceres, berada lebih jauh dari Neptunus. Kelima planet kerdil tersebut ialah Ceres (415 juta km. di sabuk asteroid; dulunya diklasifikasikan sebagai planet kelima), Pluto (5.906 juta km.; dulunya diklasifikasikan sebagai planet kesembilan), Haumea (6.450 juta km), Makemake (6.850 juta km), dan Eris (10.100 juta km).
Enam dari kedelapan planet dan tiga dari kelima planet kerdil itu dikelilingi oleh satelit alami. Masing-masing planet bagian luar dikelilingi oleh cincin planet yang terdiri dari debu dan partikel lain.
Berikut Gambar Susunan Planet Dalam Tata Surya yang akan kita buat.
Berikut Source Code Untuk Membuat Gambar Susunan Planet Dalam Tata Surya Dengan OpenGL
#include <windows.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
#include <Math.h>
//website: programmerbojonegoro.blogspot.co.id, Referensi Coding Terbaikmu!
/* GLUT callback Handlers */
void myinit()
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-10.0, 105.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
// Sun
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*16-10,sin(t)*16, 0);
}
glEnd();
// Mercury
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*25-10,sin(t)*17, 0);
}
glEnd();
glColor3f(0.3,0.0,0.3);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*1.5+15,sin(t)*1.5, 0);
}
glEnd();
// Venus
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*35-10,sin(t)*22, 0);
}
glEnd();
glColor3f(1.0,1.0,0.0);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*3+25,sin(t)*3, 0);
}
glEnd();
// Earth
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*45-10,sin(t)*26, 0);
}
glEnd();
glColor3f(0.0,1.0,0.0);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*4+35,sin(t)*4, 0);
}
glEnd();
// Mars
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*55-10,sin(t)*29, 0);
}
glEnd();
glColor3f(1.0,0.6,0.0);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*2.2+45,sin(t)*2.2, 0);
}
glEnd();
// Jupiter
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*68-10,sin(t)*37, 0);
}
glEnd();
glColor3f(0.0,0.4,1.0);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*7+57,sin(t)*7, 0);
}
glEnd();
// Saturn
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*85-10,sin(t)*41, 0);
}
glEnd();
glColor3f(0.8,0.3,0.0);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*6+74,sin(t)*6, 0);
}
glEnd();
glColor3f(0.8,0.2,0.0);
glLineWidth(4);
glBegin(GL_LINE_STRIP);
for(float t=2.6; t<=6.88; t+=0.01){
glVertex3f(cos(t)*6.8+74,sin(t)*2, 0);
}
glEnd();
glLineWidth(1);
// Uranus
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*97-10,sin(t)*46, 0);
}
glEnd();
glColor3f(0.3,0.1,1.0);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*4.6+87,sin(t)*4.6, 0);
}
glEnd();
// Neptune
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_STRIP);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*108-10,sin(t)*48, 0);
}
glEnd();
glColor3f(0.3,0.7,0.8);
glBegin(GL_POLYGON);
for(float t=0.0; t<=6.28; t+=0.01){
glVertex3f(cos(t)*5.2+98,sin(t)*5.2, 0);
}
glEnd();
glFlush();
}
static void key(unsigned char key, int x, int y)
{
switch (key)
{
case 27 :
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}
/* Program entry point */
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(1000,175);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Tata Surya[Matahari, Merkurius, Venus, Bumi, Mars, Yupiter, Saturnus, Uranus, dan Neptunus] - Programmer Bojonegoro | programmerbojonegoro.blogspot.co.id");
glutDisplayFunc(display);
glutKeyboardFunc(key);
myinit();
glutMainLoop();
return EXIT_SUCCESS;
}
Alhamdulillah, itulah source code untuk Membuat Gambar Susunan Planet Dalam Tata Surya Dengan OpenGL Menggunakan CodeBlocksSemoga bermanfaat
0 Response to "Membuat Gambar Susunan Planet Dalam Tata Surya Dengan OpenGL Menggunakan CodeBlocks"
Posting Komentar