用C语言怎么画圆呢?

2020-01-23 14:36发布

请问谁懂C语言画圆的原理?无穷多边形吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
27条回答
cqv
2020-01-24 22:27
本帖最后由 cqv 于 2012-3-30 19:22 编辑

当年不知道从那抄的。。
  1. void LCD_Circle (unsigned int x, unsigned int y, unsigned int r, unsigned int color)
  2. {
  3.         int a, b;
  4.         int di;

  5.         a = 0;
  6.         b = r;
  7.         di = 3 - 2 * r;                                //判断下个点位置的标志
  8.         while (a <= b)
  9.         {
  10.                 LCD_Point (x - b, y - a, color);        //3           
  11.                 LCD_Point (x + b, y - a, color);        //0           
  12.                 LCD_Point (x - a, y + b, color);        //1      
  13.                 LCD_Point (x - b, y - a, color);        //7           
  14.                 LCD_Point (x - a, y - b, color);        //2            
  15.                 LCD_Point (x + b, y + a, color);        //4               
  16.                 LCD_Point (x + a, y - b, color);        //5
  17.                 LCD_Point (x + a, y + b, color);        //6
  18.                 LCD_Point (x - b, y + a, color);
  19.                 a++;

  20.                 /***使用Bresenham算法画圆**/
  21.                 if (di < 0)
  22.                         di += 4 * a + 6;
  23.                 else
  24.                 {
  25.                         di += 10 + 4 * (a - b);
  26.                         b--;
  27.                 }
  28.                 LCD_Point (x + a, y + b, color);
  29.         }
  30. }
复制代码

一周热门 更多>