#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void plotpoints(int cx,int cy, int x,int y)
{
putpixel(cx + x, cy + y,4);
putpixel(cx - x, cy + y,4);
putpixel(cx + x, cy - y,4);
putpixel(cx - x, cy - y,4);
}
void main()
{
int cx,cy,rx,ry;
printf("Enter the center ");
scanf("%d%d",&cx,&cy);
printf("x radius : ");
scanf("%d",&rx);
printf("y radius : ");
scanf("%d",&ry);
long rx2 = (long)rx*rx;
long ry2 = (long)ry*ry;
long trx2 = 2*rx2;
long try2 = 2*ry2;
long p,x=0, y=ry;
long px=0;
long py = trx2 * y;
p = (long) ( ( ry2 - (rx2 * ry) + (0.25 * rx2) ) + 0.5 );
int gd=DETECT,gm=DETECT;
initgraph(&gd,&gm,"");
cleardevice();
putpixel(cx,cy,15);
while(px<py)
{
plotpoints(cx,cy,x,y);
x++;
px += try2;
if(p < 0)
p += ry2 + px;
else
{
y--;
py -= trx2;
p += ry2 + px -py;
}
}
py=trx2*y;
px=try2*x;
p = (long) ( (ry2*(x+0.5)*(x+0.5) + rx2*(y-1)*(y-1) - rx2*ry2) + 0.5 );
while(y>=0)
{
plotpoints(cx,cy,x,y);
y--;
py -= trx2;
if(p > 0)
p += rx2 - py;
else
{
x++;
px += try2;
p += rx2 - py + px;
}
}
getch();
}
Comments
Post a Comment