MathChaosEngine
分形与混沌系统可视化引擎
查看 GitHub效果展示
项目介绍
MathChaosEngine 是一个用于展示分形与混沌系统的可视化项目, 当前实现了分形树生成,并支持参数控制与动态效果展示。
技术实现
- C++ 图形绘制
- 递归生成分形结构
- 随机参数控制自然效果
核心代码
// 分形树递归核心
void FractalTree::generateBranchesLessRandom(Vec2 pos, double length, double angle, int depth)
{
if (depth <= 0) return;
// 计算终点
Vec2 end = pos + Vec2(length * cos(angle), length * sin(angle));
if (depth <= 0 || length < 3)
{
return;
}
if (branches.size() > 5000)
{
return;
}
// 存储这条树枝
addBranch(pos, end, depth, length, angle);
// 随机变化:长度和角度
double newLength = length * g_Random.range(0.65, 0.75);
double angleOffset = g_Random.range(-5.0, 5.0) * M_PI / 180.0;
// 递归生成左右分支
generateBranchesLessRandom(end, newLength, angle + branchAngle + angleOffset, depth - 1);
generateBranchesLessRandom(end, newLength, angle - branchAngle + angleOffset, depth - 1);
}
项目收获
通过该项目,深入理解了递归结构与图形生成的关系, 并提升了对复杂系统可视化的设计能力。