FractalTree L-System Pro 分形实验室

FractalTreeLSystem Pro · 分形树与L系统演化动力学实验室
> 基于林登迈尔形式文法 (Lindenmayer System) 与乌龟几何学栈的纯原生互动计算仿真实验室。
---
🌟 作品简介
FractalTreeLSystem Pro 是一款探索植物形态自组织生长、分形拓扑与生化声景的交互式科学实验平台。通过形式文法语法推导(Axiom & Rules)、乌龟几何学状态栈(Turtle Stack)与动态风场动力学扰动,将抽象的离散符号演化为生机盎然的自然形态分形树与灌木。
本项目采用零依赖纯原生前端架构(HTML5 Canvas 2D + Web Audio API + Vanilla JavaScript + Tailwind CSS),包含 3D 轴测树冠相空间投影、分形自相似豪斯多夫维数测度、递归层级能量谱分析与五声音阶生物合成声景。
---
🔬 核心理论与算法模型
1. 林登迈尔系统 (Lindenmayer System) 形式文法
L-系统是由生物学家 Aristid Lindenmayer 提出的平行重写文法体系 $G = (V, \omega, P)$:
- 字母表 $V$:
F(前进绘图),X(形态生长点),+(逆时针偏转角度 $\theta$),-(顺时针偏转角度 $\theta$),[(压入当前坐标姿态栈),](弹出还原坐标姿态栈)。
- 种子公理 $\omega$ 与生成式规则 $P$(如灌木形态 $X \to F+[[X]-X]-F[-FX]+X$, $F \to FF$)。
- 经过 $n$ 次递归推导产生指数级长度的形态符号序列。
2. 乌龟几何状态栈与风场动力学 (Turtle Graphics & Wind Perturbation)
状态机以元组 $(x, y, \theta, \text{depth}, \text{stepLen})$ 遍历符号串:
- 遇到
[时保存局部坐标系,遇到]时返回父级分支节点。
- 引入深度相关的末端微风扰动:
$$\theta{\text{sway}} = \sin(\omega t + \text{depth} \cdot \Delta\phi) \cdot I{\text{wind}} \cdot \text{depth}$$
实现树冠与嫩芽随自然微风摇曳的动态生命感。
3. 豪斯多夫自相似分形维数 (Hausdorff Fractal Dimension)
通过分支因子 $N$ 与空间比例缩放因子 $r$,实时计算自相似形态的理论分形维数:
$$D = \frac{\ln(N)}{\ln(1/r)}$$
4. 3D 轴测树冠投影与相空间拓扑
将二维分形树节点映射至三维旋转圆台相空间 $(x, z, y)$,通过轴测等距变换呈现树冠包络体、光照遮蔽率与空间占据体积。
5. Web Audio 五声音阶生态声景 (BioSynth Soundscape)
基于纯原生 AudioContext 振荡器阵列,将各递归层级的分支生长映射为宫、商、角、徵、羽(C-D-E-G-A)五声音阶和弦,微风扰动实时调制滤波与声相,带来沉浸式科学美学体验。
---
📐 系统架构与技术实现
1. 形式文法生成引擎 (L-System Engine): 支持公理推导、自定义生成式、迭代阶数控制与经典植物形态预设(经典二叉分形树、密集灌木、针叶松林、海藻分形、谢尔宾斯基三角拓扑)。
2. 乌龟渲染管线 (Turtle Render Pipeline): 60 FPS Canvas 2D 硬件加速,支持分支深度颜色渐变、光晕描边与末端嫩芽渲染。
3. 物理与动力学模块 (Wind & Physics): 连续简谐波动风场、湍流噪声发生器与枝干弹性阻尼模拟。
4. 科学遥测与可视化仪表盘 (Telemetry Dashboard): 实时监控分支节点总数、线段数、分形维数、树冠包络面积与风场示波器。
---
🚀 运行与部署指南
本工程为纯原生前端应用,无需安装 Node 模块或编译步骤:
1. 直接启动:双击根目录下 index.html 或通过任意静态 HTTP 服务器(如 VS Code Live Server / npx serve)即可畅享体验。
2. 浏览器支持:兼容所有支持 HTML5 Canvas 与 Web Audio API 的现代浏览器(Chrome、Edge、Safari、Firefox)。
---
Powered by Huawei Cloud Developer Gallery & GitCode.
- 点赞
- 收藏
- 关注作者
评论(0)