From b2cf7e80c9d6e840f67672c7a41dcdddcad00cf4 Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 17 Nov 2023 14:36:18 +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/solar_system/halley_comet_lib.py | 6 ++++- sim_scenes/solar_system/sun_earth.py | 27 ++++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/sim_scenes/solar_system/halley_comet_lib.py b/sim_scenes/solar_system/halley_comet_lib.py index 8afe35e..f17c823 100644 --- a/sim_scenes/solar_system/halley_comet_lib.py +++ b/sim_scenes/solar_system/halley_comet_lib.py @@ -90,7 +90,11 @@ class HalleyCometSimBase(UniverseSimScenes): def build_solar_system(self, ignore_gravity=False, start_time=None): # region 构建太阳系 show_trail = False - self.sun = Sun(size_scale=0.6e2, show_trail=show_trail, texture="sun_light.jpg") + self.sun = Sun(size_scale=0.6e2, show_trail=show_trail, + # color=(255, 250, 245), + # texture="", + texture="sun_light.jpg" + ) self.mercury = Mercury(size_scale=5e3, show_trail=show_trail) self.venus = Venus(size_scale=3e3, show_trail=show_trail) self.earth = Earth(size_scale=3e3, rotate_angle=0, show_trail=show_trail) diff --git a/sim_scenes/solar_system/sun_earth.py b/sim_scenes/solar_system/sun_earth.py index 96638c4..becab2e 100644 --- a/sim_scenes/solar_system/sun_earth.py +++ b/sim_scenes/solar_system/sun_earth.py @@ -9,6 +9,7 @@ from bodies import Sun, Earth, Sirius from common.consts import SECONDS_PER_WEEK, SECONDS_PER_DAY, AU from sim_scenes.func import mayavi_run, ursina_run +from simulators.ursina.ursina_event import UrsinaEvent if __name__ == '__main__': """ @@ -19,10 +20,30 @@ if __name__ == '__main__': Earth(size_scale=2e3, distance_scale=1), # 地球放大 2000 倍,距离保持不变 ] - # 使用 mayavi 查看的运行效果 - # mayavi_run(bodies, SECONDS_PER_WEEK, view_azimuth=-45) + circle = None + + def on_ready(): + global circle + from simulators.ursina.ursina_mesh import create_circle + from ursina import camera + # circle = create_circle(parent=None, scale=1e2) + # circle.set_light_off(True) + + + def on_timer_changed(time_data): + global circle + from ursina import camera + # circle.look_at(camera) + # circle.rotation_y = 90 + + # 运行中,每时每刻都会触发 on_timer_changed + UrsinaEvent.on_timer_changed_subscription(on_timer_changed) + # 运行前会触发 on_ready + UrsinaEvent.on_ready_subscription(on_ready) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -4 * AU), show_trail=True) + ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -4 * AU), + timer_enabled=True, + show_trail=True) -- GitLab