sun_earth_moon.py 1.4 KB
Newer Older
三月三net's avatar
三月三net 已提交
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 12 13 14 15 16 17 18
from scenes.func import mayavi_run, ursina_run
from bodies.body import AU

if __name__ == '__main__':
    """
    地球、月球
    """
    # 地球的Y方向初始速度
三月三net's avatar
三月三net 已提交
19 20 21 22
    EARTH_INIT_VELOCITY = 0  # 0km/s
    sun = Sun(init_position=[AU, 0, 0], size_scale=2e1)  # 太阳放大 20 倍
    # 忽略质量的引力
    sun.ignore_mass = True
三月三net's avatar
三月三net 已提交
23 24 25
    bodies = [
        sun,
        Earth(init_position=[0, 0, 0],
三月三net's avatar
三月三net 已提交
26 27 28 29 30
              init_velocity=[0, EARTH_INIT_VELOCITY, 0],
              size_scale=1e1),  # 地球放大 10 倍,距离保持不变
        Moon(init_position=[0, 384400, 0],  # 距地距离约: 363104 至 405696 km
             init_velocity=[-1.023, EARTH_INIT_VELOCITY, 0],
             size_scale=2e1)  # 月球放大 20 倍,距离保持不变
三月三net's avatar
三月三net 已提交
31
    ]
三月三net's avatar
三月三net 已提交
32
    # 使用 mayavi 查看的运行效果
三月三net's avatar
三月三net 已提交
33 34 35
    # mayavi_run(bodies, SECONDS_PER_HALF_DAY / 2, view_azimuth=-45)

    # 使用 ursina 查看的运行效果
三月三net's avatar
三月三net 已提交
36
    ursina_run(bodies, SECONDS_PER_DAY, position=(0, 0, 0))