From 961561677b0a8598be9a8b32ec42ad7b5d10d04a Mon Sep 17 00:00:00 2001 From: march3 Date: Sat, 11 Nov 2023 15:10:55 +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 | 4 ++++ sim_scenes/solar_system/halley_comet_sim.py | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/sim_scenes/solar_system/halley_comet_lib.py b/sim_scenes/solar_system/halley_comet_lib.py index 1dd6c33..8e99ea6 100644 --- a/sim_scenes/solar_system/halley_comet_lib.py +++ b/sim_scenes/solar_system/halley_comet_lib.py @@ -68,6 +68,10 @@ class HalleyCometSimBase: self.pluto = None self.bodies = [] + def set_window_size(self, size=(1536, 684)): + from ursina import window + window.size = size + def build_solar_system(self, ignore_gravity=False, start_time=None): # region 构建太阳系 show_trail = False diff --git a/sim_scenes/solar_system/halley_comet_sim.py b/sim_scenes/solar_system/halley_comet_sim.py index 064883b..f6a4755 100644 --- a/sim_scenes/solar_system/halley_comet_sim.py +++ b/sim_scenes/solar_system/halley_comet_sim.py @@ -71,6 +71,10 @@ class HalleyCometSim(HalleyCometSimBase): # UrsinaConfig.trail_length = 180 UrsinaConfig.trail_factor = 3 + + # self.set_window_size((3500, 1024)) + # self.set_window_size((1920, 1080)) + # camera.clip_plane_near = 0.1 camera.clip_plane_far = 1000000 @@ -297,13 +301,17 @@ class HalleyCometSim(HalleyCometSimBase): if not hasattr(self, "last_total_hours"): self.last_total_hours = time_total_hours - if time_total_hours - self.last_total_hours > 240: + # 每个一段时间运行一次更新(不要太频繁更新,会导致摄像机抖动) + if time_total_hours - self.last_total_hours > 100: + # 更新天体的位置 self.set_bodies_position(time_data) + # 更新时钟 self.show_clock(dt) - self.last_total_hours = time_total_hours + # 更新轨道的位置 + for i, orbit_line in enumerate(self.orbit_lines): + orbit_line.position = self.sun.planet.position - # for i, orbit_line in enumerate(self.orbit_lines): - # orbit_line.position = self.sun.planet.position + self.last_total_hours = time_total_hours if __name__ == '__main__': @@ -336,13 +344,12 @@ if __name__ == '__main__': # position=(0, 2 * AU, -11 * AU), # position=(0, 0.5 * AU, -5 * AU), # position=(2 * AU, -5 * AU, -20 * AU), - show_name=True, position=(2 * AU, -6 * AU, -20 * AU), cosmic_bg='', show_trail=True, # bg_music='sounds/no_glory.mp3', show_camera_info=False, - save_as_video=True, + # save_as_video=True, show_control_info=False, timer_enabled=True, show_grid=False -- GitLab