diff --git a/common/celestial_data_service.py b/common/celestial_data_service.py index 2a07db88eb9f375a2f68384034434efab34d27bf..276a1b3973119c4b27883b75a94cb9d849e7355f 100644 --- a/common/celestial_data_service.py +++ b/common/celestial_data_service.py @@ -402,9 +402,11 @@ def get_init_pos_vels_2(): return init_pos_vels -def init_bodies_pos_vels(bodies): +def init_bodies_pos_vels(bodies, init_pos_vels_fun=None): + if init_pos_vels_fun is None: + init_pos_vels_fun = get_init_pos_vels # 获取模拟的初始位置和速度 - init_pos_vels = get_init_pos_vels() + init_pos_vels = init_pos_vels_fun() for body in bodies: pos_vels = init_pos_vels.get(type(body).__name__.lower(), None) diff --git a/sim_scenes/featured/two_way_foil_sim.py b/sim_scenes/featured/two_way_foil_sim.py index b749c67c5b3af8bde540e1654a9262e17e50cff0..a295775e2ab6627427eb23ec8076e1d57825c476 100644 --- a/sim_scenes/featured/two_way_foil_sim.py +++ b/sim_scenes/featured/two_way_foil_sim.py @@ -10,7 +10,7 @@ from ursina import camera, application, lerp, Vec3 from bodies import Sun, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto from common.celestial_data_service import init_bodies_reality_pos_vels, conv_to_astropy_time, \ - set_solar_system_celestial_position, init_bodies_pos_vels + set_solar_system_celestial_position, init_bodies_pos_vels, get_init_pos_vels_2 from common.consts import SECONDS_PER_YEAR, AU from common.func import calculate_distance from bodies import Earth @@ -74,7 +74,7 @@ class TwoWayFoilSim(UniverseSimScenes): self.saturn.two_way_foil_dt = 0.005 * self.two_way_foil_dt_factor self.uranus.two_way_foil_dt = 0.002 * self.two_way_foil_dt_factor - init_bodies_pos_vels(self.bodies) + init_bodies_pos_vels(self.bodies, init_pos_vels_fun=get_init_pos_vels_2) def build(self): """