大家有没有画实心圆的算法?

2019-12-28 17:50发布

就是用LCD画一个实心圆~~不是空心的哦~~是实心,可以填充任意颜 {MOD}的~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
56条回答
czg1411
2019-12-30 03:35
senjet 发表于 2013-8-24 15:46
就是在x,y处画点啊,mode是颜 {MOD}。这是快速画填充圆算法。相应的还有画线、画非填充圆、画椭圆,全部以画 ...

可以不用这么麻烦。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 ++;
    }
}

一周热门 更多>