#include <GL/freeglut.h> #include <math.h> const float DEG2RAD = 3.14159/180; void drawCircle(float radius) { glBegin(GL_TRIANGLE_FAN); glVertex2f(0.5,0.5); for (int i=0; i <= 360; i++) { float degInRad = i*DEG2RAD; glVertex2f(cos(degInRad)*radius+0.5,sin(degInRad)*radius+0.5); } glEnd(); } void display(void) { /* clear all pixels */ glClear (GL_COLOR_BUFFER_BIT); /* draw white polygon (rectangle) with corners at * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0) */ glColor3f (1.0, 1.0, 1.0); drawCircle(0.4); /* don't wait! * start processing buffered OpenGL routines */ glFlush (); } void init (void) { /* select clearing (background) color */ glClearColor (0.0, 0.0, 0.0, 0.0); /* initialize viewing values */ glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (250, 250); glutInitWindowPosition (100, 100); glutCreateWindow ("hello"); init (); glutDisplayFunc(display); glutMainLoop(); return 0; /* ISO C requires main to return int. */ }