原子哥原来的代码
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);
}
}
自己改的代码
void MY_gui_fill_circle(u16 x0,u16 y0,u16 r,u16 color)
{
u16 i,j;
for(i=x0-r;i<=x0;i++)
{
for(j=y0-r;j<=y0+r;j++)
{
if((i-x0)*(i-x0)+(j-y0)*(j-y0)<r*r)
gui_draw_hline(i,j,2*(x0-i),RED);
}
}
}
原来的代码含义还望高手解释下!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
.......................................................................................................................
---------------------------------
好诚实的原子哥
一周热门 更多>