反应扩散:从局部浓度到斑点与迷宫
打开反应扩散实验。拖动画布加入扰动,观察斑点逐渐分裂、延伸或连成条带。本站参考 Karl Sims 的反应扩散教程,在网格上计算两种虚拟物质的浓度,不逐个模拟分子。
怎么玩
切换“迷宫”“斑点”“珊瑚”会换用不同参数并重新播种。拖动加入一片高浓度 B 区域;键盘可用方向键移动光标,再按 Enter 或空格播种。暂停后单步能观察局部边缘如何变化。
重置恢复迷宫参数和默认种子。初始图案已经预先计算 160 个反应步,因此打开页面时看到的不是刚播种的圆点。参数名称描述常见外观,实际形状仍受种子、扰动与演化时间影响。
Gray–Scott 更新
记 A、B 的浓度为 ,模型使用:
本站取 、、时间步长为 1。扩散项采用九点模板:中心权重 ,上下左右各 ,四个对角各 。 补充 A, 与 共同影响 B 的移除。
网格与颜色
计算网格为 ,边缘周期相接。每次仿真更新执行六个反应步;单步按钮也是六步。两组浮点缓冲区交替读写,避免同一轮计算混入刚更新的邻居;每步把浓度限制在 ,作为这一显示实现的数值保护。
颜色只映射 B 的浓度:先将 截断到 ,再用平滑曲线映射到色阶。因此图例顶端标为 ,更高浓度共享末端颜色,不能仅凭颜色区分。像素场经平滑放大后显示;改变画布大小不会增加模拟网格的精度。
与 生命游戏 相比,邻居影响在这里通过连续浓度传播;它是生成纹理的简化模型,并未拟合某种真实化学反应的物理单位或速率。