#include<iostream.h> #include<GL/glut.h> class wcPt2D { public: GLint x,y; }; void setPixel(GLint x,GLint y) { glBegin(GL_POINTS); glVertex2i(x,y); glEnd(); } void init(void) { glClearColor(1.0,1.0,1.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0,200.0,0.0,150.0); } void circlePlotPoints(wcPt2D circCtr,wcPt2D circPt) { setPixel(circCtr.x+circPt.x,circCtr.y+circPt.y); setPixel(circCtr.x-circPt.x,circCtr.y+circPt.y); setPixel(circCtr.x+circPt.x,circCtr.y-circPt.y); setPixel(circCtr.x-circPt.x,circCtr.y-circPt.y); setPixel(circCtr.x+circPt.y,circCtr.y+circPt.x); setPixel(circCtr.x-circPt.y,circCtr.y+circPt.x); setPixel(circCtr.x+circPt.y,circCtr.y-circPt.x); setPixel(circCtr.x-circPt.y,circCtr.y-circPt.x ); } void circleMidpoint(wcPt2D circCtr,GLint radius) { wcPt2D circPt; GLint p=1-radius; circPt.x =0; circPt.y =radius; void cirClePlotPoints(wcPt2D,wcPt2D); circlePlotPoints(circCtr,circPt); while(circPt.x<circPt.y) { circPt.x++; if(p<0) p+=2*circPt.x +1; else { circPt.y--; p+=2*(circPt.x-circPt.y)+1; } circlePlotPoints(circCtr,circPt); } } void display(void) { wcPt2D mid; mid.x=100; mid.y=76; glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,0.0,0.0); circleMidpoint(mid,50); glFlush(); } int main(int argc,char**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowPosition(50,100); glutInitWindowSize(400,300); glutCreateWindow("An Example OpenGl Program"); init();/// glutDisplayFunc(display) ;/ glutMainLoop(); return 0; }