当前位置: 首页 > news >正文

太阳系三体模拟器

介绍

《三体》是刘慈欣创作的长篇科幻小说,文中提到的三体问题比较复杂和无解。 该项目代码就是利用 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 
http://www.lryc.cn/news/271897.html

相关文章:

  • SQL常见面试题
  • 怎么获取客户端真实IP?GO
  • 山海鲸可视化软件的优势:数据整合、可视化与个性化定制
  • Mybatis行为配置之Ⅰ—缓存
  • 【Java开发岗面试】八股文—计算机网络
  • 【PythonRS】基于矢量范围批量下载遥感瓦片高清数据(天地图、高德、谷歌等)
  • 穷举vs暴搜vs深搜vs回溯vs剪枝
  • Sensor Demosaic IP 手册PG286笔记
  • HarmonyOS —— UIAbility 页面跳转总结
  • Spring Boot 3 集成 Jasypt详解
  • Spring Boot整合 EasyExcel 实现复杂 Excel 表格的导入与导出功能
  • SQLSERVER排查CPU占用高
  • uniapp:富文本回显
  • flink内存配置
  • easyexcel 导出
  • maven命令行安装依赖测试
  • Redis 笔记
  • 可穿戴智能设备应用领域以及使用意义分别有哪些?
  • 【Linux操作系统】探秘Linux奥秘:文件系统的管理与使用
  • 机器学习——主成分分析(PCA)
  • 论最近热门的AI绘画技术—从小白绘画到文创手账设计【文末送书-13】
  • python打开文件的方式比较
  • 使用Jenkins和单个模板部署多个Kubernetes组件
  • Unity Meta Quest 一体机开发(十二):【手势追踪】Poke 交互 - 用手指点击由 3D 物体制作的 UI 按钮
  • Vue 3 中安装并使用 Axios 详细步骤+样例代码详解
  • IDEA 控制台中文出现乱码问题解决
  • 计算机网络(1)
  • 如果我想用python自动操作手机、电脑软件,应该学python哪方面的知识呢?
  • 关于java命令行传参
  • [LeetCode][Python]389. 找不同