C/C++樱花树代码(完整代码)
樱花树(也称为树形图案或Koch曲线树)是一种基于复杂性科学中的分形概念创建的图案。下面是一个简单的C/C++代码示例,用于生成一棵樱花树的图案:
#include <iostream>
#include <cmath>
const double PI = 3.14159265358979323846;
const double SIZE = 100.0;
const int ITERATIONS = 5;
const double ANGLE = PI / 3.0;
void koch(double size, int iteration) {
if (iteration == 0) {
// 最小分割长度到达,绘制当前分割线段
std::cout << "Line: x1=" << 0 << ", y1=" << SIZE / 2 << ", x2=" << size << ", y2=" << SIZE / 2 << std::endl;
} else {
// 递归分割分形线
double third = size / 3.0;
koch(third, iteration - 1);
std::cout << "Line: x1=" << third << ", y1=" << SIZE / 2 + (0.5 * SIZE * std::sin(ANGLE)),
", x2=" << 2 * third << ", y2=" << SIZE / 2 << std::endl;
koch(third, iteration - 1);
koch(third, iteration - 1);
}
}
int main() {
koch(SIZE, ITERATIONS);
return 0;
}
这段代码定义了一个koch
函数,它通过递归的方式绘制了一棵樱花树。SIZE
定义了初始分割线段的长度,ITERATIONS
定义了递归的深度。每次递归,分割线段的长度减半,直到达到ITERATIONS
定义的深度。最终,这个函数会输出构成樱花树的所有线段的坐标。
评论已关闭