Thursday, August 16, 2012

Bresenham's Circle Drawing Algorithm Using C Programming

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
    int gd=DETECT,gm;
    int x,y,r;
    void cir(int,int,int);
    printf("Enter the Mid points and Radious:");
    scanf("%d%d%d",&x,&y,&r);
    initgraph(&gd,&gm,"");
    cir(x,y,r);
    getch();
    closegraph();
}

void cir(int x1,int y1,int r)
{
    int x=0,y=r,p=1-r;
    void cliplot(int,int,int,int);
    cliplot(x1,y1,x,y);
    while(x<y)
   {
        x++;
        if(p<0)
          p+=2*x+1;
       else
       {
          y--;
          p+=2*(x-y)+1;
       }
       cliplot(x1,y1,x,y);
   }
 }
void cliplot(int xctr,int yctr,int x,int y)
{
   putpixel(xctr +x,yctr +y,1);
   putpixel(xctr -x,yctr +y,1);
   putpixel(xctr +x,yctr -y,1);
   putpixel(xctr -x,yctr -y,1);
   putpixel(xctr +y,yctr +x,1);
   putpixel(xctr -y,yctr +x,1);
   putpixel(xctr +y,yctr -x,1);
   putpixel(xctr -y,yctr -x,1);
   getch();
}

No comments:

Post a Comment