by Eicke » Nov 28, 2002 @ 3:52am
void DrawCircle(int nX, int nY, int nR, COLORREF Color)
{
int x,y,dt,dt1,dt2,dr;
x=0;y=nR;dt=2-nR-nR;
while(y>=0)
{
//SetPixelColor is a draw point fun
SetPixelColor(nX+x,nY+y,Color);
SetPixelColor(nX+x,nY-y,Color);
SetPixelColor(nX-x,nY+y,Color);
SetPixelColor(nX-x,nY-y,Color);
if(dt<0)
{
dt1=dt+dt+y+y-1;
if(dt1<=0)dr=1;
else dr=2;
}
else if(dt>0)
{
dt2=dt+dt-x-x-1;
if(dt2<=0)dr=2;
else dr=3;
}else dr=2;
switch(dr)
{
case 1: x++;dt+=x+x+1;
break;
case 2: x++;y--;dt+=x+x-y-y-1;
break;
case 3: y--;dt+=1-y-y;
break;
}
}
}