Midpoint Circle Drawing Algorithm

4)

CODE:

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int xc,yc,r;
void drawcircle(int,int,int);
clrscr();
initgraph(&gd,&gm," ");
printf("\nEnter the co-ordinate of xcenter and ycenter");
scanf("%d%d",&xc,&yc);
printf("\n\t\tEnter the radius");
scanf("%d",&r);
xc+=20;
yc=460-yc;
drawcircle(xc,yc,r);
setcolor(WHITE);
line(60,60,60,470);
line(20,440,550,440);
outtextxy(57,466,"v");
outtextxy(20,437,"<");
outtextxy(57,60,"^y");
outtextxy(547,437,">x");
outtextxy(190,80,"**********MIDPOINT CIRCLE DRAWING ALGORITHM**********");
getch();
closegraph();
}
void drawcircle(int xc,int yc,int r)
{
int x=0,y=r,pt=1-r;
circleplot(xc,yc,x,y);
while(x<y)
{
x++;
if(pt<0)
{
pt=pt+2*x+1;
}
else
{
y--;
pt=pt+2*(x-y)+1;
}
circleplot(xc,yc,x,y);
}
}
circleplot(int xc,int yc,int x,int y)
{
putpixel(xc+x,yc+y,2);
putpixel(xc-x,yc+y,2);
putpixel(xc+x,yc-y,2);
putpixel(xc-x,yc-y,2);
putpixel(xc+y,yc+x,2);
putpixel(xc-y,yc+x,2);
putpixel(xc+y,yc-x,2);
putpixel(xc-y,yc-x,2);
sleep(2);
}

OUTPUT:


Comments

POPULAR POSTS

POPULAR POSTS