有没有大佬懂下面嵌入式C语言画圆代码,特别是定义imax和sqmax,非常感谢!!
void LCD_FillCircle (U16 x0, U16 y0, U16 r) //填充圆
{
U32 i;
U32 imax = ((int)((int)r*707))/1000+1;
U32 sqmax = (int)r*(int)r+(int)r/2;
U16 x = r;
LCD_DrawHLine(x0-r,y0,x0+r);
for (i=1; i<= imax; i++)
{
if ((i*i+x*x) >sqmax)
{
if (x>imax)
{
LCD_DrawHLine (x0-i+1,y0+x, x0+i-1);
LCD_DrawHLine (x0-i+1,y0-x, x0+i-1);
}
x--;
}
LCD_DrawHLine(x0-x,y0+i, x0+x);
LCD_DrawHLine(x0-x,y0-i, x0+x);
}
}