(c语言代码 代码120行左右)在屏幕中画圆,自选起点,呈现出慢慢把圆从无到有画出 来 的过程。可以用*或者其他符号来模拟曲线。
时间: 2023-11-28 22:49:35 浏览: 79
以下是使用C语言编写的画圆程序,可以自选起点并呈现出慢慢画圆的过程:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <unistd.h>
#define MAX_X 80
#define MAX_Y 24
void drawCircle(int x, int y, int r);
int main() {
int x, y, r;
printf("Please enter the center point (x, y) of the circle:\n");
scanf("%d%d", &x, &y);
printf("Please enter the radius of the circle:\n");
scanf("%d", &r);
if (x-r < 0 || x+r > MAX_X || y-r < 0 || y+r > MAX_Y) {
printf("The circle is out of range.\n");
return 1;
}
drawCircle(x, y, r);
return 0;
}
void drawCircle(int x, int y, int r) {
int i, j;
char screen[MAX_Y][MAX_X+1];
for (i = 0; i < MAX_Y; i++) {
for (j = 0; j < MAX_X; j++) {
screen[i][j] = ' ';
}
screen[i][MAX_X] = '\0';
}
for (i = 0; i <= 360; i++) {
float rad = i * M_PI / 180.0;
int px = x + r * cos(rad);
int py = y + r * sin(rad);
if (px >= 0 && px < MAX_X && py >= 0 && py < MAX_Y) {
screen[py][px] = '*';
system("clear");
for (j = 0; j < MAX_Y; j++) {
printf("%s\n", screen[j]);
}
usleep(10000);
}
}
}
```
这个程序使用了字符数组来模拟屏幕,每次画点时都会清空屏幕并重新打印整个字符数组。为了呈现出慢慢从无到有画出圆的效果,我们使用了`usleep()`函数来让程序暂停一段时间。你可以根据需要调整这个时间间隔。
阅读全文