一起创业网-为互联网创业者服务

c语言圆怎么编程序

在C语言中绘制一个圆,你可以选择不同的方法,包括使用数学公式、图形库函数或者特定的绘图算法。下面我将介绍几种常见的方法来绘制一个圆。

方法一:使用数学公式

你可以使用圆的方程 `(x - a)^2 + (y - b)^2 = r^2` 来判断一个点是否在圆上,其中 `(a, b)` 是圆心坐标,`r` 是半径。以下是一个简单的程序,用于在屏幕上绘制一个空心圆:

```c

include

include

// 判断点 (x, y) 是否在圆上

int isAtCircle(int x, int y, int r) {

int rx = x - r;

int ry = y - r;

double d = sqrt(rx*rx + ry*ry) - r;

return fabs(d) <= r;

}

// 打印圆

void printCircle(int r) {

int x, y;

for (y = 0; y <= r * 2; y++) {

for (x = 0; x <= r * 2; x++) {

if (isAtCircle(x, y, r))

printf("*");

else

printf(" ");

}

printf("\n");

}

}

int main() {

int r;

printf("输入圆的半径: ");

scanf("%d", &r);

printCircle(r);

return 0;

}

```

方法二:使用图形库函数

如果你使用的是支持图形的C语言编译器,如Turbo C++或者EasyX,你可以使用图形库函数来绘制圆。以下是使用EasyX图形库绘制圆的示例代码:

```c

include

int main() {

int gd = DETECT, gm;

initgraph(&gd, &gm, "");

setcolor(RED);

circle(200, 200, 100); // 圆心坐标 (200, 200),半径 100

refresh();

getch();

closegraph();

return 0;

}

```

方法三:使用中点Bresenham算法

中点Bresenham算法是一种用于绘制圆的像素算法。以下是使用该算法绘制圆的示例代码:

```c

include

include

void circlePoint(int x, int y) {

// 绘制点 (x, y) 及其在八分圆中的另外7个对称点

circle(320 + x * 20, 240 + y * 20, 3);

circle(320 + y * 20, 240 + x * 20, 3);

circle(320 - y * 20, 240 + x * 20, 3);

circle(320 - x * 20, 240 + y * 20, 3);

circle(320 - x * 20, 240 - y * 20, 3);

circle(320 - y * 20, 240 - x * 20, 3);

circle(320 + y * 20, 240 - x * 20, 3);

circle(320 + x * 20, 240 - y * 20, 3);

}

void MidBresenhamcircle(int r) {

int x = 0, y = r, d;

d = 1 - r;

while (x < y) {

circlePoint(x, y);

if (d < 0)

d = 2 * x + 3;

else {

d = 2 * (x - y) + 5;

y--;

}

x++;

}

}

int main() {

int r;

printf("输入圆的半径: ");

scanf("%d", &r);

MidBresenhamcircle(r);

return 0;

}

```

请注意,使用图形库函数通常需要安装相应的图形库,并且可能需要调整代码以适应不同的编译器和环境。