#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>
void main()
{
int i,x,y,r,p,midx,midy;
int gd=DETECT,gm,xcenter,ycenter;
printf("Enter the radius :");
scanf("%d",&r);
initgraph(&gd,&gm,"..\\bgi");
midx=getmaxx()/2;
midy=getmaxy()/2;
xcenter=midx;
ycenter=midy;
x=0;
y=r;
p=1-r;
midpoint(xcenter,ycenter,x,y,p); // to draw circle
//to draw asterik (2 horizontal n vertical lines)
//inside the circle.
for(i=0;i<=r;i++)
{ putpixel(xcenter+i,ycenter,10);
putpixel(xcenter-i,ycenter,10);
putpixel(xcenter,ycenter+i,10);
putpixel(xcenter,ycenter-i,10);
}
getch();
closegraph();
}
midpoint(int xcenter,int ycenter,int x,int y,int p)
{
while(x < y)
{
plotcircle(xcenter,ycenter,x,y);
if(p<0)
p=p+2*x+1;
else
{
p=p+2*(x-y)+1;
y=y-1;
}
x=x+1;
}
if(x==y)
plotcircle(xcenter,ycenter,x,y);
return;
}
plotcircle(int xcenter,int ycenter,int x,int y)
{
putpixel(xcenter+x,ycenter+y,10);
putpixel(xcenter-x,ycenter+y,10);
putpixel(xcenter+x,ycenter-y,10);
putpixel(xcenter-x,ycenter-y,10);
putpixel(xcenter+y,ycenter+x,10);
putpixel(xcenter-y,ycenter+x,10);
putpixel(xcenter+y,ycenter-x,10);
putpixel(xcenter-y,ycenter-x,10);
// asterik lines (2 cross lines)
putpixel(xcenter+x,ycenter-x,10);
putpixel(xcenter-x,ycenter+x,10);
putpixel(xcenter-x,ycenter-x,10);
putpixel(xcenter+x,ycenter+x,10);
return;
}
hookup ur code with us
Comments
Post a Comment