提交 0acaae52 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 635ab8cc
......@@ -15,6 +15,9 @@ from bodies.torus_zone import TorusZone
from bodies.asteroids import Asteroids
from bodies.habitable_zone import HabitableZone
# 木卫
from bodies.jupiter_system import Europa, Ganymede, Callisto
# 戴森球
from bodies.dysen_sphere import DysenSphere
......@@ -35,6 +38,8 @@ from bodies.fixed_stars.uy_scuti import UYScuti
from bodies.fixed_stars.eta_carinae import EtaCarinae
from bodies.fixed_stars.y_canum_venaticorum import YCanumVenaticorum
from bodies.fixed_stars.carinae_v382 import CarinaeV382
from bodies.fixed_stars.pollux import Pollux # 北河三
from bodies.fixed_stars.procyon import Procyon # 南河三
#
from bodies.color_body import ColorBody
# -*- coding:utf-8 -*-
# title :显示所有的天体
# description :显示所有的天体
# author :Python超人
# date :2023-10-06
# link :https://gitcode.net/pythoncr/
# python_version :3.9
# ==============================================================================
import random
from bodies import *
from common.consts import SECONDS_PER_DAY
from sim_scenes.func import ursina_run
# 对距离整体进行调整
r = 60000
# 天体类型
bodies_type = [
Mercury, # 水星
Venus, # 金星
Earth, # 地球
Moon, # 月球
Mars, # 火星
Jupiter, # 木星
Callisto, # 木卫四又称为卡里斯托
Europa, # 木卫二欧罗巴
Ganymede, # 木卫三盖尼米得
Saturn, # 土星
Uranus, # 天王星
Neptune, # 海王星
Pluto, # 冥王星
Sun, # 太阳
Sirius, # 天狼星A
Pollux, # 北河三
Procyon, # 南河三
Bellatrix, # 参宿五
Alcyone, # 昴宿六
Arcturus, # 大角星
Aldebaran, # 毕宿五
Rigel, # 参宿七
YCanumVenaticorum, # 猎犬座Y
EtaCarinae, # 海山二
Antares, # 心宿二
CarinaeV382, # 船底座V382
Betelgeuse, # 参宿四
VYCanisMajoris, # 大犬座VY
UYScuti, # 盾牌座 UY
Stephenson_2_18 # 史蒂文森2-18
]
def get_bodies():
new_bodies = []
body_idx = 0
for x in range(-3, 4):
for y in range(0, 1):
for z in range(-2, 3):
if body_idx > len(bodies_type) - 1:
return new_bodies
body = bodies_type[body_idx](ignore_mass=True, init_velocity=[0, 0, 0], rotation_speed=0)
body_idx += 1
if body.is_fixed_star:
body.light_on = False # 关闭恒星的灯光效果
# 调整天体大小一致
body.size_scale = r / 2 / body.diameter
body.init_position = [r * x, r * y, r * z]
body.rotation_speed = random.randint(5, 20) / 10 # 随机自转转速
new_bodies.append(body)
return new_bodies
if __name__ == '__main__':
# 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后-
ursina_run(get_bodies(),
SECONDS_PER_DAY,
position=(0, 0, -r * 10),
show_camera_info=False,
show_control_info=False,
show_grid=False
)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册