From 0543a4cf3a052879367b53312dea9bd0771e2e7f Mon Sep 17 00:00:00 2001 From: march3 Date: Sat, 10 Jun 2023 20:58:56 +0800 Subject: [PATCH] =?UTF-8?q?Python=E8=B6=85=E4=BA=BA-=E5=AE=87=E5=AE=99?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sim_scenes/fiction/fixed_stars_1.py | 1 + sim_scenes/fiction/fixed_stars_2.py | 1 + sim_scenes/fiction/stephenson_2_18.py | 4 ++- .../solar_system/sun_future_evolution.py | 31 ++++++++++++------- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/sim_scenes/fiction/fixed_stars_1.py b/sim_scenes/fiction/fixed_stars_1.py index d551bde..2aca125 100644 --- a/sim_scenes/fiction/fixed_stars_1.py +++ b/sim_scenes/fiction/fixed_stars_1.py @@ -60,5 +60,6 @@ if __name__ == '__main__': # M:摄像机移动加速 N:摄像机移动减速 # position = (左-右+、上+下-、前+后-) ursina_run(bodies, SECONDS_PER_WEEK, + show_grid=False, position=(0, AU, -AU / 500), show_name=True, bg_music="sounds/universe_03.mp3") diff --git a/sim_scenes/fiction/fixed_stars_2.py b/sim_scenes/fiction/fixed_stars_2.py index 15f71a2..0e6d002 100644 --- a/sim_scenes/fiction/fixed_stars_2.py +++ b/sim_scenes/fiction/fixed_stars_2.py @@ -60,5 +60,6 @@ if __name__ == '__main__': # M:摄像机移动加速 N:摄像机移动减速 # position = (左-右+、上+下-、前+后-) ursina_run(bodies, SECONDS_PER_WEEK, + show_grid=False, position=(0, 30000, -AU / 500), show_name=True, bg_music="sounds/universe_03.mp3") diff --git a/sim_scenes/fiction/stephenson_2_18.py b/sim_scenes/fiction/stephenson_2_18.py index 68a9e34..f9b4510 100644 --- a/sim_scenes/fiction/stephenson_2_18.py +++ b/sim_scenes/fiction/stephenson_2_18.py @@ -25,7 +25,9 @@ if __name__ == '__main__': init_position=[-2896.9165, 2896.9165, 0]), Sun(size_scale=SIZE_SCALE, ignore_mass=True, init_position=[-316397.06, 316397.06, 386345.72]), # 太阳 - Stephenson_2_18(size_scale=SIZE_SCALE, color=(28, 2, 1), ignore_mass=True, + Stephenson_2_18(size_scale=SIZE_SCALE, + # color=(28, 2, 1), + ignore_mass=True, init_position=[-10e+08, 6.802537e+08, 8.234898e+08]) # 史蒂文森2-18 质量倍数 40.0 半径倍数 2150 ] diff --git a/sim_scenes/solar_system/sun_future_evolution.py b/sim_scenes/solar_system/sun_future_evolution.py index ef95a6b..cdcabc6 100644 --- a/sim_scenes/solar_system/sun_future_evolution.py +++ b/sim_scenes/solar_system/sun_future_evolution.py @@ -22,28 +22,37 @@ if __name__ == '__main__': # ===================================================================== # 以下展示的效果为太阳系真实的距离 # 由于宇宙空间尺度非常大,如果按照实际的天体大小,则无法看到天体,因此需要对天体的尺寸进行放大 - sun = Sun(name="太阳", size_scale=0.8e2) # 太阳放大 80 倍,距离保持不变 + sun = Sun(name="太阳", size_scale=0.8e2) # 太阳放大 80 倍,距离保持不变 bodies = [ sun, - Mercury(name="水星", size_scale=4e3), # 水星放大 4000 倍,距离保持不变 - Venus(name="金星", size_scale=4e3), # 金星放大 4000 倍,距离保持不变 - Earth(name="地球", size_scale=4e3), # 地球放大 4000 倍,距离保持不变 - Mars(name="火星", size_scale=4e3), # 火星放大 4000 倍,距离保持不变 + Mercury(name="水星", size_scale=4e3), # 水星放大 4000 倍,距离保持不变 + Venus(name="金星", size_scale=4e3), # 金星放大 4000 倍,距离保持不变 + Earth(name="地球", size_scale=4e3), # 地球放大 4000 倍,距离保持不变 + Mars(name="火星", size_scale=4e3), # 火星放大 4000 倍,距离保持不变 # Asteroids(name="小行星群", size_scale=3.2e2, # parent=sun), # 小行星群模拟(仅 ursina 模拟器支持) - Jupiter(name="木星", size_scale=0.8e3), # 木星放大 800 倍,距离保持不变 - Saturn(name="土星", size_scale=0.8e3), # 土星放大 800 倍,距离保持不变 - Uranus(name="天王星", size_scale=0.8e3), # 天王星放大 800 倍,距离保持不变 - Neptune(name="海王星", size_scale=1e3), # 海王星放大 1000 倍,距离保持不变 - Pluto(name="冥王星", size_scale=10e3), # 冥王星放大 10000 倍,距离保持不变(从太阳系的行星中排除) + Jupiter(name="木星", size_scale=0.8e3), # 木星放大 800 倍,距离保持不变 + Saturn(name="土星", size_scale=0.8e3), # 土星放大 800 倍,距离保持不变 + Uranus(name="天王星", size_scale=0.8e3), # 天王星放大 800 倍,距离保持不变 + Neptune(name="海王星", size_scale=1e3), # 海王星放大 1000 倍,距离保持不变 + Pluto(name="冥王星", size_scale=10e3), # 冥王星放大 10000 倍,距离保持不变(从太阳系的行星中排除) ] # 循环为每个恒星的初始位置进行赋值,方便演示 for idx, body in enumerate(bodies): body.rotation_speed /= 200 # 恒星的旋转速度减小10倍 + def on_timer_changed(time_data: TimeData): - sun.planet.init_scale = sun.planet.init_scale + 0.2 + # 模拟要爆炸的样子 + if int(time_data.total_hours) % 3 == 0: + scale_val = (sun.planet.scale_x / 100) + elif int(time_data.total_hours) % 5 == 0: + scale_val = - 2 * (sun.planet.scale_x / 100) + else: + scale_val = 0 + + sun.planet.init_scale += scale_val # -- GitLab