c语言实现bresenham画圆算法并给出代码
时间: 2023-07-26 09:07:17 浏览: 277
易语言Bresenham算法画椭圆源码
5星 · 资源好评率100%
Bresenham画圆算法是一种用于在计算机屏幕或其他数字显示设备上绘制圆的算法。这种算法减少了计算机的开销,因为它只需要使用整数计算,而不是浮点数计算。
以下是C语言实现Bresenham画圆算法的代码:
```c
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
void draw_circle(int xc, int yc, int x, int y)
{
putpixel(xc+x, yc+y, RED);
putpixel(xc-x, yc+y, RED);
putpixel(xc+x, yc-y, RED);
putpixel(xc-x, yc-y, RED);
putpixel(xc+y, yc+x, RED);
putpixel(xc-y, yc+x, RED);
putpixel(xc+y, yc-x, RED);
putpixel(xc-y, yc-x, RED);
}
void bresenham_circle(int xc, int yc, int r)
{
int x=0, y=r, d=3-2*r;
draw_circle(xc, yc, x, y);
while (x <= y)
{
x++;
if (d > 0)
{
y--;
d = d + 4*(x-y) + 10;
}
else
{
d = d + 4 * x + 6;
}
draw_circle(xc, yc, x, y);
}
}
int main()
{
int xc = 320, yc = 240, r = 100;
initgraph();
bresenham_circle(xc, yc, r);
getch();
closegraph();
return 0;
}
```
在这个例子中,我们使用了graphics.h库来绘制圆。在主函数中,我们定义了圆心坐标为(320, 240),半径为100。在bresenham_circle函数中,我们使用Bresenham算法来计算圆上每个点的坐标,并使用draw_circle函数将其绘制到屏幕上。最后,我们使用initgraph函数初始化绘图环境,使用getch函数等待用户按下任意键,然后使用closegraph函数关闭绘图环境。
阅读全文