1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| void Circle (int xc, int yc, int radius)
{
int x,y,dxt;
long r2, dst, t, s, e, ca, cd, indx;
r2= (long)radius*(long)radius;
dst=4*r2;
dxt=(double)radius/1.414213562373;
t=0;
s=-4*r2*(long)radius;
e=(-s/2)-3*r2;
ca=-6*r2;
cd=-10*r2;
x=0;
y=radius;
putpixel(xc,yc+radius);
putpixel(xc,yc-radius);
putpixel(xc+radius,yc);
putpixel(xc-radius,yc);
for (indx=1; indx <= dxt; indx++)
{
x++;
if (e>=0) e+=t+ca;
else
{
y--;
e+=t-s+cd;
s+=dst;
}
t-=dst;
putpixel(xc+x,yc+y);
putpixel(xc+x,yc-y);
putpixel(xc-x,yc+y);
putpixel(xc-x,yc-y);
putpixel(xc+y,yc+x);
putpixel(xc+y,yc-x);
putpixel(xc-y,yc+x);
putpixel(xc-y,yc-x);
};
}; |