diff --git a/sim_scenes/sci_pop/sun_earth_moon.py b/sim_scenes/sci_pop/sun_earth_moon.py index 15aabd87bd2ad8eae30012ca91b8ddbf5447185c..b041abfcf6628d455cdac20f5f4a9179768cda75 100644 --- a/sim_scenes/sci_pop/sun_earth_moon.py +++ b/sim_scenes/sci_pop/sun_earth_moon.py @@ -20,7 +20,7 @@ from simulators.ursina.entities.entity_utils import create_directional_light from simulators.ursina.ui.control_ui import ControlUI from simulators.ursina.ursina_config import UrsinaConfig from simulators.ursina.ursina_event import UrsinaEvent -from simulators.ursina.ursina_mesh import create_orbit_by_points +from simulators.ursina.ursina_mesh import create_orbit_by_points, create_circle_line class SunEarthMoonSim(UniverseSimScenes): @@ -43,10 +43,10 @@ class SunEarthMoonSim(UniverseSimScenes): self.earth_start = Earth(size_scale=9.5e2, show_trail=False, rotation_speed=0) self.camera_look = CoreValagaClas(name="摄像机镜头", mass=1e30, color=(111, 140, 255), - init_position=[0, 0, 0], - # init_position=[0, 3.3 * AU, -AU], - init_velocity=[0, 0, 0], - size_scale=1e4).set_ignore_gravity(True) + init_position=[0, 0, 0], + # init_position=[0, 3.3 * AU, -AU], + init_velocity=[0, 0, 0], + size_scale=1e4).set_ignore_gravity(True) self.camera_target = CoreValagaClas(name="摄像机目的", mass=1e30, color=(111, 140, 255), # init_position=[0, 0, 0], @@ -54,7 +54,10 @@ class SunEarthMoonSim(UniverseSimScenes): init_velocity=[0, 0, 0], size_scale=1e4).set_ignore_gravity(True) - self.bodies = [self.sun, self.earth, self.moon, self.earth_start, self.camera_look, self.camera_target] + self.bodies = [self.sun, self.earth, self.moon, self.earth_start, + # self.camera_look, + # self.camera_target + ] for body in self.bodies: body.init_velocity = [0, 0, 0] @@ -102,9 +105,10 @@ class SunEarthMoonSim(UniverseSimScenes): # TODO: 调试用 if dt.month < 12: - UrsinaConfig.run_speed_factor = 200 * 24 + UrsinaConfig.run_speed_factor = 50 * 24 elif UrsinaConfig.run_speed_factor > 20 * 24: UrsinaConfig.run_speed_factor = 20 * 24 + # TODO: 调试用 if dt.month >= 12 and dt.day >= 31: if dt.hour > 20: @@ -153,7 +157,12 @@ class SunEarthMoonSim(UniverseSimScenes): 创建太阳系天体的真实轨迹(太阳和哈雷彗星除外) @return: """ - self.create_orbit_line(self.sun, self.earth, self.start_time, alpha=0.5) + # self.moon.orbital_days=27.5 + self.create_orbit_line(self.sun, self.earth, self.start_time, alpha=1) + # self.create_orbit_line(self.sun, self.moon, self.start_time, alpha=0.5) + + orbit_line = create_circle_line(parent=self.earth.planet.main_entity, radius=10, thickness=2, color=self.moon.trail_color, alpha=1) + orbit_line.rotation_x = 40 # for body in self.bodies[1:]: # if isinstance(body, Earth): @@ -211,7 +220,6 @@ class SunEarthMoonSim(UniverseSimScenes): # 月球围绕地球转一圈的时间,即月球真正的公转周期是一个恒星月,时间是27.5天 。 # 而我们一般用从地球上看,月球完成一次朔望更替为一个月,叫一个朔望月,时间是29.5天。 - aspect_ratio = window.aspect_ratio position, origin = (0.5 * aspect_ratio - 0.15, -0.45), (-0.05, 0.1), # ControlUI.current_ui.show_message(dt.strftime('%Y-%m-%d'), @@ -224,10 +232,10 @@ class SunEarthMoonSim(UniverseSimScenes): # close_time=-1) self.text_panel.text = "\n日期时间:\n" + dt.strftime('%Y-%m-%d %H:%M') + "\n\n" + \ - "天数:" + str(round(total_days, 2)) + "\n\n" + \ - "月数:" + str(round(total_days/29.5, 2)) - # "运行速度:" + str(UrsinaConfig.run_speed_factor) + "\n" + \ - # "天数:" + str(round(total_days, 3)) + "天数:" + str(round(total_days, 2)) + "\n\n" + \ + "月数:" + str(round(total_days / 29.5, 2)) + # "运行速度:" + str(UrsinaConfig.run_speed_factor) + "\n" + \ + # "天数:" + str(round(total_days, 3)) def update_text_panel(self, time_data): """ @@ -255,7 +263,7 @@ class SunEarthMoonSim(UniverseSimScenes): # self.set_window_size((1920 , 1080 ), False) camera_look_at(self.sun) # 显示网格以及坐标线 - # self.show_grid_axises(scale_factor=100) + # self.show_grid_axises(scale_factor=8) # 创建太阳系天体的真实轨迹(太阳和哈雷彗星除外) self.create_orbit_lines() @@ -280,7 +288,8 @@ class SunEarthMoonSim(UniverseSimScenes): self.start_time = start_time ursina_run(self.bodies, SECONDS_PER_DAY / 24, - position=(0, 3.5 * AU, -AU), + # position=(0, 3.5 * AU, -AU), # 顶上 + position=(0, 1 * AU, -3.5*AU), gravity_works=False, cosmic_bg='', show_trail=True,