/**
* @brief 画一个圆
*
* @param x0,y0 圆心坐标
* @param r 圆半径
*
* @return void
*/
void lcd_draw_circle(u16 x0, u16 y0, u8 r,u16 pointColor)
{
int a, b;
int di;
a = 0;
b = r;
di = 3 - (r << 1);
while(a <= b)
{
lcd_draw_point(x0 - b, y0 - a,pointColor);
lcd_draw_point(x0 + b, y0 - a,pointColor);
lcd_draw_point(x0 - a, y0 + b,pointColor);
lcd_draw_point(x0 - b, y0 - a,pointColor);
lcd_draw_point(x0 - a, y0 - b,pointColor);
lcd_draw_point(x0 + b, y0 + a,pointColor);
lcd_draw_point(x0 + a, y0 - b,pointColor);
lcd_draw_point(x0 + a, y0 + b,pointColor);
lcd_draw_point(x0 - b, y0 + a,pointColor);
a++;
if(di < 0)di += 4 * a + 6;
else
{
di += 10 + 4 * (a - b);
b--;
}
lcd_draw_point(x0 + a, y0 + b,pointColor);
}
}
|