站点实验室
两组几乎相同的初始状态,会走出多不一样的轨迹?几条局部规则,能长出什么图案?这里的九个实验都可以直接在浏览器里操作,每项都有独立画布和模型说明。选一个现象,先改变条件、观察结果,再读对应的计算方法。本站的架构与渲染实现也记录在这里。
交互实验
哪些条件会改变轨迹
- 双摆(打开实验):让两组初始状态仅差一点的摆同时运动,暂停后比较末端轨迹。它们是否立即分开?
- 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 作为前端框架的用法见 工具与工作流;通用的计算机科学概念,包括图形学和算法,见 计算机科学。浏览全站主题可返回 知识地图。