ASCII码模拟星系碰撞:牛顿引力定律融合C++的「奇迹」

2021-02-08 19:55:49 浏览数 (1)


新智元报道

编辑:keyu

【新智元导读】继上次用SCII实现曾经「专属」Nvidia的光线追踪技术之后,作者又使用ASCII模拟了碰撞的星系,过程十分逼真。此外,他还发布了ASCII游戏、ASCII模仿鱼群等项目,心动了么?还不赶紧上手试试!

还记得上次那个用ASCII实现光线追踪技术的国外小哥吗?

没错,他又有新动作了!

这次,他再一次使用ASCII码模拟了碰撞的星系,同样,全过程都是用C 实现的。

毫无疑问,这个最新的项目一经出现,就在Reddit上收揽了2.5K 热度。

下图就是星球即将碰撞的一瞬间

此外,小哥还模仿了两颗星球在相反方向进行旋转的过程:

用牛顿引力定律助力星系碰撞

这些神奇的效果是怎么实现的呢?

小哥在他的视频里简单介绍了一下基本的过程和原理:

首先,使用牛顿引力定律,他实现了重力的模拟。

使用这个公式,他就可以预测任何数量的物体的运动趋势:

下图还模拟了日地月三个星球的运动状态:

整个实验的代码地址:

github.com/DinoZ1729/Galaxy

诸多项目妙趣横生,只有想不到没有做不到

除此之外,小哥还放上了另外三个项目的视频链接:

一个是「在c 控制台模拟10,000双摆」:

视频链接:

https://www.youtube.com/watch?v=DMOK5BS6KJw

下面是一个双摆的运动状态:

下图是两个双摆:

下面是10000个双摆的运动情况:

这个项目是「Boids |模拟鱼类和鸟类的运动」:

视频链接:

https://www.youtube.com/watch?v=mev2cgRN9Zo

下图是鱼群和鸟群的运动状态:

他使用了三种简单的规则来模拟运动状态:

而没有了这三种规则的限制,情况会是下图这样:

可以看出,在没有规则的限制下,运动轨迹会是完全混乱的。

参考链接:

https://www.reddit.com/r/programming/comments/l3f5v4/i_created_an_ascii_simulation_of_colliding/

0 人点赞