ursina_json_sim.py 2.1 KB
Newer Older
三月三net's avatar
三月三net 已提交
1 2 3 4 5 6 7 8 9 10
# -*- coding:utf-8 -*-
# title           :ursina模拟器(支持天体json文件的读取)
# description     :ursina模拟器(支持天体json文件的读取)
# author          :Python超人
# date            :2023-02-11
# link            :https://gitcode.net/pythoncr/
# python_version  :3.8
# ==============================================================================
from bodies import Body

三月三net's avatar
三月三net 已提交
11 12
from common.consts import SECONDS_PER_WEEK, SECONDS_PER_MONTH, SECONDS_PER_YEAR, AU
from scenes.func import ursina_run
三月三net's avatar
三月三net 已提交
13 14

if __name__ == '__main__':
三月三net's avatar
三月三net 已提交
15
    # TODO: 去掉注释,太阳演示
三月三net's avatar
三月三net 已提交
16
    # bodies, params = Body.build_bodies_from_json('../data/sun.json')
三月三net's avatar
三月三net 已提交
17 18 19 20
    # TODO: 去掉注释,太阳和地球演示
    # bodies, params = Body.build_bodies_from_json('../data/sun_earth.json')
    # TODO: 去掉注释,在地球上看月相演示变化过程演示
    # bodies, params = Body.build_bodies_from_json('../data/sun_earth_moon.json')
三月三net's avatar
三月三net 已提交
21
    # TODO: 去掉注释,完美数据的三体模型的演示01(等边三角形)
三月三net's avatar
三月三net 已提交
22
    # bodies, params = Body.build_bodies_from_json('../data/tri_bodies_sim_perfect_01.json')
三月三net's avatar
三月三net 已提交
23 24 25 26
    # TODO: 去掉注释,完美数据的三体模型的演示02(等边三角形)
    # bodies, params = Body.build_bodies_from_json('../data/tri_bodies_sim_perfect_02.json')
    # TODO: 去掉注释,完美数据的三体模型的演示03(等边三角形)
    bodies, params = Body.build_bodies_from_json('../data/tri_bodies_sim_perfect_03.json')
三月三net's avatar
三月三net 已提交
27 28
    # TODO: 去掉注释,引力弹弓的演示
    # bodies, params = Body.build_bodies_from_json('../data/gravity_slingshot.json')
三月三net's avatar
三月三net 已提交
29 30 31

    dt = params["dt"] if "dt" in params else SECONDS_PER_YEAR
    position = params["position"] if "position" in params else (0, 0, 0)
三月三net's avatar
三月三net 已提交
32

三月三net's avatar
三月三net 已提交
33 34
    # 使用 ursina 查看的运行效果
    # 常用快捷键: P:运行和暂停  O:重新开始  I:显示天体轨迹
三月三net's avatar
三月三net 已提交
35
    # position = 左-右+、上+下-、前+后-
三月三net's avatar
三月三net 已提交
36 37
    json_file = None  # 指定 json_file 保存路径,则会将模拟环境天体数据保存到该json文件中
    ursina_run(bodies, dt, position=position, save_as_json=json_file)