c语言实现中点画圆算法并给出代码
时间: 2023-12-10 13:38:26 浏览: 36
中点画圆算法是一种经典的圆形绘制算法,它的基本思想是从圆的第一个点开始,按顺序计算出每个点在圆上的位置,从而实现圆的绘制。以下是用 C 语言实现中点画圆算法的代码:
```c
#include <stdio.h>
#include <graphics.h>
// 画圆函数
void drawCircle(int x, int y, int r) {
int x0 = 0, y0 = r;
int p = 1 - r; // 初始决策参数
while (x0 <= y0) {
putpixel(x + x0, y + y0, YELLOW);
putpixel(x + y0, y + x0, YELLOW);
putpixel(x - y0, y + x0, YELLOW);
putpixel(x - x0, y + y0, YELLOW);
putpixel(x - x0, y - y0, YELLOW);
putpixel(x - y0, y - x0, YELLOW);
putpixel(x + y0, y - x0, YELLOW);
putpixel(x + x0, y - y0, YELLOW);
if (p < 0) {
p += 2 * x0 + 3;
} else {
p += 2 * (x0 - y0) + 5;
--y0;
}
++x0;
}
}
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, ""); // 初始化图形界面
drawCircle(200, 200, 100); // 画圆
getch();
closegraph(); // 关闭图形界面
return 0;
}
```
其中,`putpixel()` 函数用于在屏幕上绘制像素点,`DETECT` 和 `YELLOW` 分别是 `graphics.h` 中定义的常量,用于初始化图形界面和设置绘制颜色。在该代码中,我们通过 `drawCircle()` 函数传入圆心坐标和半径,然后按照中点画圆算法的步骤,依次计算每个像素点在圆上的位置,并使用 `putpixel()` 函数将其绘制到屏幕上。最后,我们通过 `getch()` 函数暂停程序,等待用户按下任意键后再关闭图形界面。