CODE:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <MATH.h>
#if defined(__APPLE__)
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#define PI 3.1415926535898 
#define PI 3.1415926535898 
GLint circle_points = 40; 
void MyCircle3f(GLfloat centerx, GLfloat centery, GLfloat
centerz, GLfloat radius)
{
  GLint i;
  GLdouble
theta;
 
glBegin(GL_POINTS);
  for (i = 0; i < circle_points; i++) {    
    theta =
2*PI*i/circle_points; 
       glColor3f(0.5*cos(theta)+0.5,0.,0.5*sin(theta)+0.5);
   
glVertex3f(centerx+radius*cos(theta), centery,
centerz+radius*sin(theta)); 
  } 
  glEnd();
}
void Display(void)
{
       glClear
(GL_COLOR_BUFFER_BIT);
       glBegin(GL_LINES);
       glColor3f
(1.0, 0.0, 0.0);
       glVertex3f(0,0.,0.);
       glVertex3f(1,0,.0);
       glEnd();
       glBegin(GL_LINES);
       glColor3f
(0.0, 1.0, 0.0);
       glVertex3f(0.,0.,0.);
       glVertex3f(0.,1,0);
       glEnd();
       glBegin(GL_LINES);
       glColor3f
(0.0, 0.0, 1.0);
       glVertex3f(0.,0.,0.);
       glVertex3f(0.,0.,1.);
       glEnd();
       glPointSize(2.);
       MyCircle3f(0.,0.,0.,1);
       MyCircle3f(0.,0.5,0.,1);
       glFlush();
}
void reshape (int w, int h)
{
       glViewport
(0, 0, (GLsizei) w, (GLsizei) h);
       glMatrixMode
(GL_PROJECTION);
       glLoadIdentity();
 gluPerspective(60., (GLfloat)w/h, 1., 20.);
       glMatrixMode
(GL_MODELVIEW);
       glLoadIdentity
(); 
       gluLookAt(0.2,0.2,3,
0,0,-100,0.,1.,0.);
}
void init(void){
 
glClearColor(1.0,1.0,1.0,1.0);
}
void main(int argc, char* argv[])
{
 
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB );
 
glutInitWindowSize (320, 200);   
 
glutCreateWindow("Displaying 3D
shapes");
  init();
 
glutDisplayFunc(Display);
 
glutReshapeFunc(reshape);    
 
glutMainLoop();
}
OUTPUT:






 
 
 
 
 
 
 
0 comments:
Post a Comment