Source Code For Solar System Project Computer Graphics
Source Code For Solar System Project Computer Graphics
#include<GL/glut.h>
#include <math.h>
#include<GL/glu.h>
#include<GL/glext.h>
#include<GL/gl.h>
#define PI 3.1415926535897932384626433832795
void setupMaterials()
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, model_ambient);
}
model_ambient[0] = r;
model_ambient[1] = g;
model_ambient[2] = b;
model_ambient[3] = A;
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, model_ambient);
if(h == 0) h = 1;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, w, h);
glMatrixMode(GL_MODELVIEW);
float j = 0.0f;
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
// The Sun
glPushMatrix();
GLUquadric *sun;
sun = gluNewQuadric();
gluSphere(sun,100,100,100);
glPopMatrix();
// Mercury
glPushMatrix();
GLUquadric *Mercury;
Mercury = gluNewQuadric();
gluSphere(Mercury,10,100,100);
glPopMatrix();
// Venus
glPushMatrix();
glTranslatef(venusRadius,0.0, 0.0);
GLUquadric *Venus;
Venus = gluNewQuadric();
gluSphere(Venus,25.8,100,100);
glPopMatrix();
// Earth
glPushMatrix();
glTranslatef(earthRadius,0.0, 0.0);
GLUquadric *Earth;
Earth = gluNewQuadric();
gluSphere(Earth,20.6,100,100);
glPopMatrix();
// Mars
glPushMatrix();
glTranslatef(marsRadius,0.0, 0.0);
GLUquadric *Mars;
Mars = gluNewQuadric();
gluSphere(Mars,18.4,100,100);
glPopMatrix();
// Jupitar
glPushMatrix();
glTranslatef(jupiterRadius,0.0, 0.0);
GLUquadric *Jupitar;
Jupitar = gluNewQuadric();
gluSphere(Jupitar,64.5,100,100);
glPopMatrix();
// Saturn
glPushMatrix();
glTranslatef(saturnRadius,0.0, 0.0);
GLUquadric *Saturn;
Saturn = gluNewQuadric();
gluSphere(Saturn,54,100,100);
glPopMatrix();
glPushMatrix();
glTranslatef(saturnRadius,0.0, 0.0);
glBegin(GL_POINTS);
glEnd();
glPopMatrix();
// Uranus
glPushMatrix();
glTranslatef(uranusRadius,0.0, 0.0);
GLUquadric *Uranus;
Uranus = gluNewQuadric();
gluSphere(Uranus,22.5,100,100);
glPopMatrix();
// Neptune
glPushMatrix();
glTranslatef(neptuneRadius,0.0, 0.0);
GLUquadric *Neptune;
Neptune = gluNewQuadric();
gluSphere(Neptune,24,100,100);
glPopMatrix();
angle += 0.2f;
jupiterAngle += jupiter / 2;
saturnAngle += saturn / 2;
glutSwapBuffers();
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN)
glutIdleFunc(renderScene);
break;
case GLUT_RIGHT_BUTTON:
if (state == GLUT_DOWN)
glutIdleFunc(NULL);
break;
switch (key) {
case 27:
exit(0);
break;
void init(void) {
setupMaterials();
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glFrontFace(GL_CCW);
glShadeModel(GL_SMOOTH);
glutInit(&argc, argv);
glutInitWindowPosition(100, 100);
glutInitWindowSize(1000, 500);
glutCreateWindow("Solar System");
init();
glutDisplayFunc(renderScene);
glutReshapeFunc(changeSize);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;