给我一个C++生成花朵的代码
时间: 2023-12-03 20:45:11 浏览: 72
基于c++实现的玫瑰花代码
以下是一个简单的C++代码,可以生成一个基本的花朵图案:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
const int size = 40; // 花朵大小
const int center_x = size / 2; // 中心点x坐标
const int center_y = size / 2; // 中心点y坐标
const int petal_num = 8; // 花瓣个数
const double petal_angle = 2 * M_PI / petal_num; // 花瓣角度
const int petal_size = size / 4; // 花瓣长度
const double petal_width = 0.3; // 花瓣宽度
const double petal_curve = 0.5; // 花瓣曲线
const double stem_width = 0.2; // 茎宽度
const int stem_height = size / 2; // 茎高度
// 生成花朵
for (int x = 0; x < size; x++) {
for (int y = 0; y < size; y++) {
double distance = sqrt(pow(x - center_x, 2) + pow(y - center_y, 2));
if (distance < petal_size) {
double angle = atan2(y - center_y, x - center_x);
double petal_distance = petal_size - distance;
double petal_width_distance = petal_distance * petal_width;
double petal_curve_distance = pow(petal_distance / petal_size, petal_curve) * petal_size;
for (int i = 0; i < petal_num; i++) {
double petal_angle_distance = angle - i * petal_angle;
double petal_x = center_x + petal_curve_distance * cos(petal_angle_distance) + petal_width_distance * sin(petal_angle_distance);
double petal_y = center_y + petal_curve_distance * sin(petal_angle_distance) - petal_width_distance * cos(petal_angle_distance);
if (petal_x >= 0 && petal_x < size && petal_y >= 0 && petal_y < size) {
cout << "*";
} else {
cout << " ";
}
}
} else if (y == center_y && x >= center_x - stem_width * size / 2 && x < center_x + stem_width * size / 2) {
cout << "|";
} else if (y >= center_y && y < center_y + stem_height && x >= center_x - stem_width * size / 2 && x < center_x + stem_width * size / 2) {
cout << "H";
} else {
cout << " ";
}
}
cout << endl;
}
return 0;
}
```
这个代码生成的花朵是一个简单的ASCII图案,可能需要一些调整来适应你的需求。
阅读全文