帮我用C++写一个bresenham画任意位置、任意半径的圆的代码
时间: 2023-04-04 12:02:38 浏览: 226
好的,以下是用 C 语言编写的 Bresenham 算法画任意位置、任意半径的圆的代码:
```c
#include <stdio.h>
#include <graphics.h>
void drawCircle(int x, int y, int r) {
int x0 = 0, y0 = r;
int d = 3 - 2 * r;
while (x0 <= y0) {
putpixel(x + x0, y + y0, WHITE);
putpixel(x + x0, y - y0, WHITE);
putpixel(x - x0, y + y0, WHITE);
putpixel(x - x0, y - y0, WHITE);
putpixel(x + y0, y + x0, WHITE);
putpixel(x + y0, y - x0, WHITE);
putpixel(x - y0, y + x0, WHITE);
putpixel(x - y0, y - x0, WHITE);
if (d < 0) {
d = d + 4 * x0 + 6;
} else {
d = d + 4 * (x0 - y0) + 10;
y0--;
}
x0++;
}
}
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
drawCircle(200, 200, 50);
getch();
closegraph();
return 0;
}
```
这个代码使用了 Bresenham 算法来画圆,可以在任意位置、任意半径下绘制圆形。在这个例子中,我们在屏幕上的 (200, 200) 位置画了一个半径为 50 的圆。
阅读全文