跳到主要内容

站点实验室

两组几乎相同的初始状态,会走出多不一样的轨迹?几条局部规则,能长出什么图案?这里的九个实验都可以直接在浏览器里操作,每项都有独立画布和模型说明。选一个现象,先改变条件、观察结果,再读对应的计算方法。本站的架构与渲染实现也记录在这里。

交互实验

哪些条件会改变轨迹

  • 双摆打开实验):让两组初始状态仅差一点的摆同时运动,暂停后比较末端轨迹。它们是否立即分开?
  • Rössler 吸引子打开实验):改变参数,旋转视角,观察数值积分得到的三维混沌轨迹如何折回。
  • 引力轨道打开实验):改变初速度,比较圆轨道和椭圆轨道上的速度变化;再只改倾角,观察轨道平面。
  • 流动场打开实验):拖动涡流源,比较附近与远处的粒子路径,看速度场怎样引导运动。

明暗和颜色从哪里来

  • 波纹干涉打开实验):增加波源,暂停观察波带。哪些位置相位相互增强,哪些相互抵消?
  • 棱镜色散打开实验):旋转棱镜,追踪不同波长的折射路径,以及何时出现全反射。
  • ASCII 地球打开实验):转动球体,观察字符怎样组成陆地与海洋;说明文档解释如何把球面明暗转成字符网格。

局部变化怎样形成图案

  • 生命游戏打开实验):绘制细胞,用单步比较静物、振荡器和滑翔机,分辨不变、重复和移动的图案。
  • 反应扩散打开实验):播种浓度扰动,观察斑点和条带形成;换一组参数,看形状怎样变化。

这些实验怎样实现

图形运算在读者的浏览器本地执行,不依赖托管渲染服务或远程仿真后端。每个渲染器分配并释放自己的几何体、材质、控制器、观察者、动画帧与 WebGL 上下文。尺寸随容器变化;首页预览保留直接操作与播放/暂停,完整参数面板放在独立实验页。

离屏或切到后台时暂停绘制。动态实验遵循系统的减少动态效果设置,也可手动播放。旧 3D 场景限制约 30 FPS;新增模型使用固定仿真步长,绘制跟随浏览器刷新。说明页直接展示代码与数值公式;标准 Markdown 代码块支持完整阅读、滚动和语法高亮,不用翻转卡或人为截断。

Three.js 实验

ASCII 地球、Rössler 吸引子和引力轨道使用 Three.js 展示三维场景。各自的说明页分别介绍字符转换、混沌轨迹积分和中心引力运动。

Canvas 2D 实验

双摆、波纹干涉、生命游戏和反应扩散用 Canvas 2D 绘制。相同的绘图接口背后,计算方式各不相同:摆的状态随时间积分,波场直接按位置与时间求值,后两项则逐步更新网格。

p5.js 实验

棱镜色散和流动场使用 p5.js。说明页分别介绍光线追踪与 WebGL 批量绘制,以及速度场和离屏缓冲。

图表风格

Mermaid 在本地渲染,使用 neo 几何外观与站点的暖色仪表盘色调。默认追求清晰易读;非正式示意图可以选择 handDrawn,复杂图只有在默认布局难以排布时才引入 ELK。下面是一个简单的阅读关系图:

继续阅读

这里侧重本站的基础设施与图形展示。React 作为前端框架的用法见 工具与工作流;通用的计算机科学概念,包括图形学和算法,见 计算机科学。浏览全站主题可返回 知识地图

探索关联打开关联网络