用c语言生成一朵99*99的玫瑰花不要用graphics.h库
时间: 2024-05-10 21:16:11 浏览: 85
简单的c语言代码做成的玫瑰花 来自程序员的浪漫 可以提供简单大众要求
生成一朵99*99的玫瑰花,可以使用字符画的方式实现。以下是一个简单的实现代码:
```c
#include <stdio.h>
#include <math.h>
#define SIZE 99
float f(float x, float y, float t) {
return exp(cos(t)*x + sin(t)*y) - 2*cos(4*(x*x + y*y) + t);
}
int main() {
char canvas[SIZE][SIZE];
float x, y, t;
// 初始化画布
for (int i=0; i<SIZE; i++) {
for (int j=0; j<SIZE; j++) {
canvas[i][j] = ' ';
}
}
// 画玫瑰花
for (t=0; t<6.28; t+=0.02) {
for (x=-1.5; x<=1.5; x+=0.05) {
for (y=-1.5; y<=1.5; y+=0.05) {
float z = f(x, y, t);
if (z <= 0.0) {
int i = (int)((x+1.5)*SIZE/3.0);
int j = (int)((y+1.5)*SIZE/3.0);
canvas[i][j] = '*';
}
}
}
// 打印画布
for (int i=0; i<SIZE; i++) {
for (int j=0; j<SIZE; j++) {
putchar(canvas[i][j]);
}
putchar('\n');
}
// 清空画布
for (int i=0; i<SIZE; i++) {
for (int j=0; j<SIZE; j++) {
canvas[i][j] = ' ';
}
}
// 延时
for (int i=0; i<100000000; i++);
}
return 0;
}
```
运行程序后,可以看到玫瑰花会在终端中慢慢绽放。由于终端的字符宽高比例不同,所以画出来的图形可能会略有变形。
阅读全文