earth_moon.py 1.3 KB
Newer Older
M
march3 已提交
1 2 3 4 5 6 7 8 9
# -*- coding:utf-8 -*-
# title           :地月场景模拟
# description     :地月场景模拟
# author          :Python超人
# date            :2023-02-11
# link            :https://gitcode.net/pythoncr/
# python_version  :3.8
# ==============================================================================
from bodies import Sun, Earth, Moon
三月三net's avatar
三月三net 已提交
10
from common.consts import SECONDS_PER_HOUR, SECONDS_PER_HALF_DAY, SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_MONTH
三月三net's avatar
三月三net 已提交
11
from scenes.func import mayavi_run, ursina_run
M
march3 已提交
12 13 14 15 16 17 18
from bodies.body import AU

if __name__ == '__main__':
    """
    地球、月球
    """
    # 地球的Y方向初始速度
三月三net's avatar
三月三net 已提交
19
    EARTH_INIT_VELOCITY = 0
M
march3 已提交
20
    bodies = [
三月三net's avatar
三月三net 已提交
21
        # sun,
M
march3 已提交
22
        Earth(init_position=[0, 0, 0],
三月三net's avatar
三月三net 已提交
23
              init_velocity=[0, EARTH_INIT_VELOCITY, 0], size_scale=0.5e1),  # 地球放大 5 倍,距离保持不变
三月三net's avatar
三月三net 已提交
24
        Moon(init_position=[363104, 0, 0],  # 距地距离约: 363104 至 405696 km
三月三net's avatar
三月三net 已提交
25
             init_velocity=[0, EARTH_INIT_VELOCITY + 1.023, 0], size_scale=1e1)  # 月球放大 10 倍,距离保持不变
M
march3 已提交
26
    ]
三月三net's avatar
三月三net 已提交
27
    # mayavi_run(bodies, SECONDS_PER_HALF_DAY / 2, view_azimuth=-45)
三月三net's avatar
三月三net 已提交
28 29

    # 使用 ursina 查看的运行效果
三月三net's avatar
三月三net 已提交
30 31
    # 常用快捷键: P:运行和暂停  O:重新开始  I:显示天体轨迹
    # position = 左-右+、上+下-、前+后-
三月三net's avatar
三月三net 已提交
32
    ursina_run(bodies, SECONDS_PER_MONTH, position=(0, 0, 0))