From 0b6d6022905fc425ab71c2e38051cefff92f4e4b Mon Sep 17 00:00:00 2001 From: march3 Date: Tue, 2 Apr 2024 21:13:53 +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 --- .../center_point_moving_sun_to_earth.py | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/sim_scenes/featured/center_point_moving_sun_to_earth.py b/sim_scenes/featured/center_point_moving_sun_to_earth.py index 345db30..ceb1db6 100644 --- a/sim_scenes/featured/center_point_moving_sun_to_earth.py +++ b/sim_scenes/featured/center_point_moving_sun_to_earth.py @@ -131,11 +131,6 @@ class CenterPointMovingSimLive(EarthSeasonsSimBase): delattr(self, days_counter_init_val_key) return True return False - # if days is None: - # return self.days_counter - # else: - # self.days_counter = days - # self.days_counter_init_val = time_data.total_days def get_center_pos(self, dt, time_data): ec = UrsinaSimulator.EditorCamera @@ -208,12 +203,18 @@ class CenterPointMovingSimLive(EarthSeasonsSimBase): window.borderless = True window.exit_button = False - # window.fullscreen = True - # window.position = (1920, 0) - # # 设置窗口的宽度和高度 - # window.size = (2340, 1079) + # self.window_size() self.orbit_lines = self.create_orbit_lines() + # def window_size(self): + # # window.fullscreen = True + # # window.position = (1920, 0) + # # self.set_window_size() + # # # # 设置窗口的宽度和高度 + # # window.size = (2340, 1079) + # # window.position = (0, 0) + # self.set_window_size((2376, 1080),fullscreen=True) + def hide_orbit_lines(self): for orbit_line in self.orbit_lines: destroy(orbit_line) @@ -225,29 +226,33 @@ class CenterPointMovingSimLive(EarthSeasonsSimBase): self.set_bodies_position(time_data) self.show_clock(dt) + _dt = (time_data.dt / 28788) + print("total_days:", time_data.total_days) + if time_data.total_days > 2300: + exit() ec = UrsinaSimulator.EditorCamera if self.phase_num == 1: - ec.world_position += ec.up * 2 * UrsinaConfig.run_speed_factor # 前进 - ec.world_position += ec.back * 1 * UrsinaConfig.run_speed_factor # 下 + ec.world_position += ec.up * 2 * _dt * UrsinaConfig.run_speed_factor # 前进 + ec.world_position += ec.back * 1 * _dt * UrsinaConfig.run_speed_factor # 下 elif self.phase_num == 2: self.hide_orbit_lines() elif self.phase_num == 3: if self.count_days(self.phase_num, time_data, 370): self.phase_num = 4 elif self.phase_num == 4: - ec.world_position -= ec.up * 2 * UrsinaConfig.run_speed_factor # 后退 - ec.world_position -= ec.back * 1.4 * UrsinaConfig.run_speed_factor # 下(快一点) - ec.world_position += ec.right * 0.8 * UrsinaConfig.run_speed_factor # 左 + ec.world_position -= ec.up * 2* _dt * UrsinaConfig.run_speed_factor # 后退 + ec.world_position -= ec.back * 1.4* _dt * UrsinaConfig.run_speed_factor # 下(快一点) + ec.world_position += ec.right * 0.8 * _dt* UrsinaConfig.run_speed_factor # 左 d_sun = self.get_distance_sun() print("d_sun:", d_sun) if d_sun > 45: self.phase_num = 5 elif self.phase_num == 5: - ec.world_position -= ec.back * 1.4 * UrsinaConfig.run_speed_factor # 下 - ec.world_position += ec.right * 0.7 * UrsinaConfig.run_speed_factor # 左 + ec.world_position -= ec.back * 1.4* _dt * UrsinaConfig.run_speed_factor # 下 + ec.world_position += ec.right * 0.7* _dt * UrsinaConfig.run_speed_factor # 左 pos = camera.world_position if pos[2] > 2000: self.phase_num = 6 @@ -286,16 +291,12 @@ class CenterPointMovingSimLive(EarthSeasonsSimBase): return True def show_title(self): + return aspect_ratio = window.aspect_ratio - position, origin = (-0.5 * aspect_ratio - 0.1, 0.48), (-0.05, 0.1) - position2, origin2 = (-0.5 * aspect_ratio - 0.1, 0.40), (-0.05, 0.1) - # text1 = Text(text="太阳视角:观察日食月食", color=color.white, scale=2.5, position=position, # (-0.98, 0.48), - # font=font) - ext1 = Text(text="太阳视角:2024年重要天象", color=color.white, scale=2.5, position=position, # (-0.98, 0.48), + position, origin = (-0.5 * aspect_ratio + 0.02, 0.48), (-0.05, 0.1) + text1 = Text(text="地球为中心的轨道是这样", color=color.white, scale=2, position=position, # (-0.98, 0.48), font=self.font) - text2 = Text(text="(地球自转放慢10倍)", color=color.white, scale=1.5, position=position2, # (-0.98, 0.48), - font=self.font) - # 2024年重要天象 + def show_clock(self, dt): """ @@ -306,6 +307,7 @@ class CenterPointMovingSimLive(EarthSeasonsSimBase): # if self.clock_position_center: # position, origin = (0, .25), (0, 0), # else: + return from ursina import window aspect_ratio = window.aspect_ratio position, origin = (0., 0.45), (0., 0.), @@ -325,7 +327,7 @@ if __name__ == '__main__': """ sim = CenterPointMovingSimLive() sim.run( - dt=SECONDS_PER_DAY * 20, + dt=SECONDS_PER_DAY * 5, # dt=SECONDS_PER_DAY * 3, init_position=[0, -60 * AU, 30 * AU], show_exit_button=False, -- GitLab