介绍
《三体》是刘慈欣创作的长篇科幻小说,文中提到的三体问题比较复杂和无解。 该项目代码就是利用 Python 来模拟三体的运行,此项目代码完全共享,欢迎下载。
我们可以自己通过调整天体的初始坐标、质量和矢量速度等等参数来自定义各种场景来控制天体的运行效果。
三个模拟器效果图
目录说明
bodies 天体类、包含太阳以及太阳系中的所有行星
common 公共库代码
data 构建天体的 JSON 数据
scenes 各种天体系统运行场景 演示入口
textures 天体纹理图片
simulators 天体系统运行模拟器
images 图片
安装 Python 库
# 先安装基础包 pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com ursina pyqt5 pyglet mayavi
支持三种模拟器
# 进入当前代码的根目录 cd e:\three_body_sim\ SET PYTHONPATH=%CD%# matplotlib 模拟器(支持动画和导出 gif 文件) python simulators\mpl_simulator.py# mayavi模拟器 python simulators\mayavi_simulator.py# ursina模拟器 python simulators\ursina_simulator.py
模拟场景运行
# 进入当前代码的根目录
cd e:\three_body_sim\
SET PYTHONPATH=%CD%# 场景
# 从运行demo开始
python scenes/demo.py# 三体场景
# 3个太阳、1个地球(效果1)
python scenes/three_body_01.py# 3个太阳、1个地球(效果2)
python scenes/three_body_02.py# 太阳系场景
# 以下展示的效果为太阳系真实的距离
# 由于宇宙空间尺度非常大,如果按照实际的天体大小,则无法看到天体,因此需要对天体的尺寸进行放大
python scenes/solar_system_1.py# 以下展示的效果非太阳系真实的距离和大小
# 1、由于宇宙空间尺度非常大,如果按照实际的天体大小,则无法看到天体,因此需要对天体的尺寸进行放大
# 2、为了达到最佳的显示效果,对每个行星天体的距离进行了缩放
python scenes/solar_system_2.py# 以下展示的效果非太阳系真实的距离和大小
# 1、由于宇宙空间尺度非常大,按照实际的大小无法看到行星天体,因此需要对天体的尺寸进行放大
# 2、为了达到最佳的显示效果,对每个行星天体的距离进行了缩放
# 3、加入了小行星的演示效果
python scenes/solar_system_3.py# 太阳、地球运行效果
python scenes/sun_earth.py# 太阳、地球、木星运行效果
python scenes/sun_earth_jupiter.py
太阳系三体模拟器项目地址https://gitee.com/smgc/Three-Body-Simulator-of-the-Solar-System