关于gui_fill_circle的问题

2019-10-16 02:14发布

//»-êμDÄÔ2
//x0,y0:×ø±ê
//r:°ë¾¶
//color:ÑÕé«
void gui_fill_circle(u16 x0,u16 y0,u16 r,u16 color)
{                                                                                          
        u32 i;
        u32 imax = ((u32)r*707)/1000+1;
        u32 sqmax = (u32)r*(u32)r+(u32)r/2;
        u32 x=r;
        gui_draw_hline(x0-r,y0,2*r,color);
        for (i=1;i<=imax;i++)
        {
                if ((i*i+x*x)>sqmax)// draw lines from outside  
                {
                        if (x>imax)
                        {
                                gui_draw_hline (x0-i+1,y0+x,2*(i-1),color);
                                gui_draw_hline (x0-i+1,y0-x,2*(i-1),color);
                        }
                        x--;
                }
                // draw lines from inside (center)  
                gui_draw_hline(x0-x,y0+i,2*x,color);
                gui_draw_hline(x0-x,y0-i,2*x,color);
        }
}  

这个函数中if语句里不太明白,x和i都是变量,主要就是if的判定条件不明白,希望哪位大佬能教教小弟?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。