int main (int argc, char *argv[])
{
}
int main (int argc, char *argv[])
{
int window;
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize (1280, 720);
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize (1280, 720);
glutInitWindowPosition (0, 0);
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize (1280, 720);
glutInitWindowPosition (0, 0);
window = glutCreateWindow ("Rotating Camera Demonstration");
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize (1280, 720);
glutInitWindowPosition (0, 0);
window = glutCreateWindow ("Rotating Camera Demonstration");
init ();
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize (1280, 720);
glutInitWindowPosition (0, 0);
window = glutCreateWindow ("Rotating Camera Demonstration");
init ();
glutDisplayFunc (display);
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize (1280, 720);
glutInitWindowPosition (0, 0);
window = glutCreateWindow ("Rotating Camera Demonstration");
init ();
glutDisplayFunc (display);
glutReshapeFunc (reshape);
}
int main (int argc, char *argv[])
{
int window;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
glutInitWindowSize (1280, 720);
glutInitWindowPosition (0, 0);
window = glutCreateWindow ("Rotating Camera Demonstration");
init ();
glutDisplayFunc (display);
glutReshapeFunc (reshape);
glutMainLoop ();
}
Our main() calls the following user-defined subroutines:
We'll dissect init() next...
void init (void)
{
}
void init (void)
{
glShadeModel (GL_SMOOTH);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
GLfloat lightAmbient1[4] = {0.0, 0.0, 0.0, 0.0};
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
GLfloat lightAmbient1[4] = {0.0, 0.0, 0.0, 0.0};
GLfloat lightPos1[4] = {1.0, 0.0, -0.2, 0.0};
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
GLfloat lightAmbient1[4] = {0.0, 0.0, 0.0, 0.0};
GLfloat lightPos1[4] = {1.0, 0.0, -0.2, 0.0};
GLfloat lightDiffuse1[4] = {0.5, 0.5, 0.3, 0.0};
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
GLfloat lightAmbient1[4] = {0.0, 0.0, 0.0, 0.0};
GLfloat lightPos1[4] = {1.0, 0.0, -0.2, 0.0};
GLfloat lightDiffuse1[4] = {0.5, 0.5, 0.3, 0.0};
glLightfv (GL_LIGHT1, GL_POSITION, (GLfloat *) &lightPos1);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
GLfloat lightAmbient1[4] = {0.0, 0.0, 0.0, 0.0};
GLfloat lightPos1[4] = {1.0, 0.0, -0.2, 0.0};
GLfloat lightDiffuse1[4] = {0.5, 0.5, 0.3, 0.0};
glLightfv (GL_LIGHT1, GL_POSITION, (GLfloat *) &lightPos1);
glLightfv (GL_LIGHT1, GL_AMBIENT, (GLfloat *) &lightAmbient1);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
GLfloat lightAmbient1[4] = {0.0, 0.0, 0.0, 0.0};
GLfloat lightPos1[4] = {1.0, 0.0, -0.2, 0.0};
GLfloat lightDiffuse1[4] = {0.5, 0.5, 0.3, 0.0};
glLightfv (GL_LIGHT1, GL_POSITION, (GLfloat *) &lightPos1);
glLightfv (GL_LIGHT1, GL_AMBIENT, (GLfloat *) &lightAmbient1);
glLightfv (GL_LIGHT1, GL_DIFFUSE, (GLfloat *) &lightDiffuse1);
}
void init (void)
{
glShadeModel (GL_SMOOTH);
glClearColor (1.0f, 1.0f, 1.0f, 0.0f);
glClearDepth (1.0f);
glEnable (GL_DEPTH_TEST);
glDepthFunc (GL_LEQUAL);
glEnable (GL_COLOR_MATERIAL);
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
GLfloat lightPos[4] = {-1.0, 1.0, 0.5, 0.0};
glLightfv (GL_LIGHT0, GL_POSITION, (GLfloat *) &lightPos);
glEnable (GL_LIGHT1);
GLfloat lightAmbient1[4] = {0.0, 0.0, 0.0, 0.0};
GLfloat lightPos1[4] = {1.0, 0.0, -0.2, 0.0};
GLfloat lightDiffuse1[4] = {0.5, 0.5, 0.3, 0.0};
glLightfv (GL_LIGHT1, GL_POSITION, (GLfloat *) &lightPos1);
glLightfv (GL_LIGHT1, GL_AMBIENT, (GLfloat *) &lightAmbient1);
glLightfv (GL_LIGHT1, GL_DIFFUSE, (GLfloat *) &lightDiffuse1);
glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
}
Our main() calls the following user-defined subroutines:
We'll dissect display() next...
void display (void)
{
}
void display (void)
{
float sphere_radius;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
}
else
{
}
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
}
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z);
glColor3f (0.0f, 0.0f, 1.0f);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z);
glColor3f (0.0f, 0.0f, 1.0f);
glutSolidSphere (sphere_radius, 50, 50);
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z);
glColor3f (0.0f, 0.0f, 1.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z);
glColor3f (0.0f, 0.0f, 1.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glutSwapBuffers();
}
void display (void)
{
float sphere_radius;
float red_sphere_position_x, red_sphere_position_y, red_sphere_position_z;
float green_sphere_position_x, green_sphere_position_y, green_sphere_position_z;
float blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z;
float camera_position_x, camera_position_y, camera_position_z;
float center_x, center_y, center_z;
float camera_angle_radians;
sphere_radius = 1.0;
red_sphere_position_y = -6.0f;
green_sphere_position_y = -6.0f;
blue_sphere_position_y = -6.0f;
red_sphere_position_x = 6.0f;
red_sphere_position_z = -3.25f;
green_sphere_position_x = 5.0f;
green_sphere_position_z = -5.0f;
blue_sphere_position_x = 7.0f;
blue_sphere_position_z = -5.0f;
center_x = (red_sphere_position_x + green_sphere_position_x + blue_sphere_position_x) / 3.0f;
center_y = -6.0f;
center_z = (red_sphere_position_z + green_sphere_position_z + blue_sphere_position_z) / 3.0f;
if (camera_angle_degrees >= 360.0f)
{
camera_angle_degrees = 0;
}
else
{
camera_angle_degrees = camera_angle_degrees + 1.0f;
}
camera_angle_radians = camera_angle_degrees * M_PI / 180.0f;
camera_position_x = sin(camera_angle_radians) * 6.0f + 6.0f;
camera_position_y = -6.0f;
camera_position_z = cos(camera_angle_radians) * 6.0f - 4.50f;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt (camera_position_x, camera_position_y, camera_position_z, center_x, center_y, center_z, 0.0f, 1.0f, 0.0f);
glPushMatrix ();
glTranslatef (red_sphere_position_x, red_sphere_position_y, red_sphere_position_z);
glColor3f (1.0f, 0.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (green_sphere_position_x, green_sphere_position_y, green_sphere_position_z);
glColor3f (0.0f, 1.0f, 0.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glPushMatrix ();
glTranslatef (blue_sphere_position_x, blue_sphere_position_y, blue_sphere_position_z);
glColor3f (0.0f, 0.0f, 1.0f);
glutSolidSphere (sphere_radius, 50, 50);
glPopMatrix ();
glutSwapBuffers();
glutPostRedisplay();
}
Our main() calls the following user-defined subroutines:
We'll dissect reshape() next...
void reshape (int w, int h)
{
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
if (h == 0)
{
}
else
{
}
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
if (h == 0)
{
gluPerspective (80, (float) w, 1.0, 5000.0);
}
else
{
}
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
if (h == 0)
{
gluPerspective (80, (float) w, 1.0, 5000.0);
}
else
{
gluPerspective (80, (float) w / (float) h, 1.0, 5000.0);
}
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
if (h == 0)
{
gluPerspective (80, (float) w, 1.0, 5000.0);
}
else
{
gluPerspective (80, (float) w / (float) h, 1.0, 5000.0);
}
glMatrixMode (GL_MODELVIEW);
}
void reshape (int w, int h)
{
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
if (h == 0)
{
gluPerspective (80, (float) w, 1.0, 5000.0);
}
else
{
gluPerspective (80, (float) w / (float) h, 1.0, 5000.0);
}
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();
}
Our main() calls the following user-defined subroutines:
We must define one global variable at the top of our program. Global variables are a bad programming practice. Variables should be passed into subroutines using pass by reference or pass by value. This limits the scope of variables and elliminates side-effects (i.e. a global variable changing value but we don't know where it occurs).
Unfortunately, the GLUT Application Programmer's Interface (API) is too rigid in structure. It is impossible in C to pass such variables by reference using the GLUT API. The only solution is defining the variable globally in scope.
float camera_angle_degrees = 0;
Next we need to include header files at the top of our program...
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#elif __linux__
#include <GL/glut.h>
#endif
#include <math.h>
cc -o rotating_camera_demo rotating_camera_demo.c -lglut -lGL -lGLU -lX11 -lXmu -lXi -lm
cc -o rotating_camera_demo rotating_camera_demo.c -framework GLUT -framework OpenGL -framework Cocoa -lm -Wno-deprecated
Fall 2016, CS-116A:
Lectures:
Assignments:
Handouts:
Programs: