很久没来发帖了。因为我觉得创意编程似乎在 V2EX 太小众了。
这次是个三体动画模拟:
https://www.shadertoy.com/view/33V3RR完全在 fragment shader 里面实现的,用了自适应的 RK45 方法(对应 scipy 中的 solve_ivp 函数)。动画展示了 6 个“周期”解。这些解的角动量守恒,所以轨迹可以画在一个平面里面。
由于数值积分的误差,这些动画在运行足够长的时间以后最终都会发散。采用 RK45 以及每次求解时使用较高的迭代步数 (>20),可以让动画在比较长的时间里面保持稳定。