vs使用Bresenham 画圆算法的完整代码
时间: 2024-02-09 19:08:51 浏览: 117
下面是在 Visual Studio 中使用 Bresenham 画圆算法绘制圆形的完整代码:
```c++
#include <iostream>
#include <graphics.h>
using namespace std;
void bresenham_circle(int x0, int y0, int r)
{
int x = r, y = 0;
int decision = 3 - 2 * r;
while (x >= y)
{
// draw the eight octants
putpixel(x0 + x, y0 + y, WHITE);
putpixel(x0 + y, y0 + x, WHITE);
putpixel(x0 - y, y0 + x, WHITE);
putpixel(x0 - x, y0 + y, WHITE);
putpixel(x0 - x, y0 - y, WHITE);
putpixel(x0 - y, y0 - x, WHITE);
putpixel(x0 + y, y0 - x, WHITE);
putpixel(x0 + x, y0 - y, WHITE);
y++;
if (decision <= 0)
{
decision = decision + 4 * y + 6;
}
else
{
x--;
decision = decision + 4 * (y - x) + 10;
}
}
}
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
int x0 = getmaxx() / 2;
int y0 = getmaxy() / 2;
int r = 100;
bresenham_circle(x0, y0, r);
getch();
closegraph();
return 0;
}
```
这个程序使用 BGI 图形库在屏幕中心绘制一个半径为 100 的圆形。在 `bresenham_circle` 函数中,我们使用 Bresenham 算法计算圆上的所有离散点,并使用 `putpixel` 函数将它们绘制在屏幕上。
阅读全文