*********************************************************** 函数名: circle 函数说明:画圆
传入参数:圆心坐标(x1,y1),半径r 传出参数:无 返回值: 无 ***************************************
*******************/
void circle(int x1, int y1, unsigned int r)
{ int x, y, d; x = 0; y = r; d = 1-r; /* 计算初始值 */
while (x <= y)
{ /* 绘制点(x,y)及其在八分圆中的另外7个对称点 */
DrawPoint(x1+x, y1+y,1);
DrawPoint(x1+y, y1+x,1);
DrawPoint(x1-y, y1+x,1);
DrawPoint(x1-x, y1+y,1);
DrawPoint(x1-x, y1-y,1);
DrawPoint(x1-y, y1-x,1);
DrawPoint(x1+y, y1-x,1);
DrawPoint(x1+x, y1-y,1);
if (d < 0)
{
d += 2*x+3; /* 根据误差项d的判断,决定非最大位移方向上是走还是不走 */
}
else
{
d += 2*(x-y)+5;
y--;
}
x++;
}
我是参考这个用stm32 驱动 画的圆,但是 画出来不知为何是下面的图形
|