MathChaosEngine

分形与混沌系统可视化引擎

查看 GitHub

效果展示

项目介绍

MathChaosEngine 是一个用于展示分形与混沌系统的可视化项目, 当前实现了分形树生成,并支持参数控制与动态效果展示。

技术实现

核心代码


// 分形树递归核心
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);

}

项目收获

通过该项目,深入理解了递归结构与图形生成的关系, 并提升了对复杂系统可视化的设计能力。