Thursday, 3 December 2015

midpoint

#include<stdio.h>
#include<conio.h>
#include<GL/gl.h>
#include<GL/glu.h>
#include<GL/glut.h>
#include<stdlib.h>
int r,x,y;
void disp()
{
       glClear(GL_COLOR_BUFFER_BIT);
     glColor3f(1.0,0.0,0.0);
     glPointSize(2.0); // to set size to pixels
     glBegin(GL_POINTS);
int p;
x=0;y=r;
p=1-r;
while(x<=y)
{
        if(p<0)
        {
               x=x+1;
               y=y;
               p=p+2*(x)+1;
               glVertex2f(x,y);
               glVertex2f(x,-y);
               glVertex2f(-x,-y);
               glVertex2f(-x,y);
               glVertex2f(y,x);
               glVertex2f(y,-x);
               glVertex2f(-y,-x);
               glVertex2f(-y,x);
               printf("x=%d,y=%d \n",x,y);
        }
        else
        {
            x=x+1;
            y=y-1;
            p=p+2*(x-y);
            glVertex2f(x,y);
            glVertex2f(x,-y);
            glVertex2f(-x,-y);
            glVertex2f(-x,y);
            glVertex2f(y,x);
            glVertex2f(y,-x);
            glVertex2f(-y,-x);
            glVertex2f(-y,x);
            printf("x=%d,y=%d \n",x,y);
        } 
}

glEnd();
glFlush();

}
void abc()
{
     glClearColor(0.0,0.0,0.0,1.0);
     glMatrixMode(GL_PROJECTION);
     glLoadIdentity();
     glOrtho(-100.0,100.0,-100.0,100.0,-1.0,1.0);
     }              
int  main()
{
       printf("Enter radius");
      scanf("%d",&r);
      glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
      glutInitWindowSize(500,500);
      glutCreateWindow("Bresenham's");
      glutInitWindowPosition(50,50);
          abc();
      glutDisplayFunc(disp);
      glutMainLoop();
      return 0;
      }


No comments:

Post a Comment