2019-12-28 17:50发布
senjet 发表于 2013-8-24 15:27 void FillCircle(int x0,int y0,int r,int mode) { int x,y;
senjet 发表于 2013-8-24 15:46 就是在x,y处画点啊,mode是颜 {MOD}。这是快速画填充圆算法。相应的还有画线、画非填充圆、画椭圆,全部以画 ...
czg1411 发表于 2013-8-25 00:13 可以不用这么麻烦。Bresenham算法画圆画8个点改成4条线就可以填充。。。 void LCD_DrawCircle(int xc,in ...
最多设置5个标签!
大致讲一下原理吧?
果然可以画一个填充圆,,谢谢你咯~~~~
可以不用这么麻烦。Bresenham算法画圆画8个点改成4条线就可以填充。。。
void LCD_DrawCircle(int xc,int yc,int r,int color)
{
int x,y,d;
y = r;
d = 3 - (r + r);
x = 0;
while(x <= y)
{
LCD_DrawLine(xc+x,yc+y,xc-x,yc+y,color);
LCD_DrawLine(xc+x,yc-y,xc-x,yc-y,color);
LCD_DrawLine(xc+y,yc+x,xc-y,yc+x,color);
LCD_DrawLine(xc+y,yc-x,xc-y,yc-x,color);
if(d < 0)
{
d += 4*x + 6;
}
else
{
d+=4*(x - y)+ 10;
y --;
}
x ++;
}
}
别忘了画线也是以画点为基楚的。
一周热门 更多>