diff --git a/bodies/__init__.py b/bodies/__init__.py index 518ecbcde48eb7dc582c67fe7f18eabdd8b3b89b..7ed764404d025afaefafe2f15dd845ac3d6e9a44 100644 --- a/bodies/__init__.py +++ b/bodies/__init__.py @@ -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 diff --git a/sim_scenes/fiction/show_all_bodies.py b/sim_scenes/fiction/show_all_bodies.py new file mode 100644 index 0000000000000000000000000000000000000000..04902b781798c6a3222dacd44e9e0ea39f144d3a --- /dev/null +++ b/sim_scenes/fiction/show_all_bodies.py @@ -0,0 +1,83 @@ +# -*- 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 + )