diff --git a/sim_lab/the_lost_planet.py b/sim_lab/the_lost_planet.py index 2fac2b56247cb8821ff0451c55aa7abe61f63e87..e497cdd219ee8459cbb7b9b4a5162077165f2e8c 100644 --- a/sim_lab/the_lost_planet.py +++ b/sim_lab/the_lost_planet.py @@ -13,18 +13,24 @@ from sim_scenes.universe_sim_scenes import UniverseSimScenes from simulators.ursina.ursina_event import UrsinaEvent if __name__ == '__main__': - sun = Sun(size_scale=0.4e2) + sun = Sun(size_scale=5e2).set_resolution(60) # 太阳放大 500 倍 + sun.glows = (30, 1.005, 0.03) asteroids = Asteroids(size_scale=1.08e2, parent=sun) # 小行星模拟(仅 ursina 模拟器支持) - moon = Moon(size_scale=3e3, init_position=[0, 0, (0.4 + 2.4) * AU]) - ceres = Ceres(size_scale=3e3) - jupiter = Jupiter(size_scale=0.68e3) - saturn = Saturn(size_scale=0.68e3) + + # 环状星群带(inner_radius, outer_radius, subdivisions) + # inner_radius:内圆半径 outer_radius:外圆半径,subdivisions:细分数,控制圆环的细节和精度 + asteroids.torus_zone = 4.2, 5, 64 + + moon = Moon(size_scale=3e3, init_position=[0, 0, (0.4 + 2.4) * AU], distance_scale=1.7) + ceres = Ceres(size_scale=3e3, distance_scale=1.7) + jupiter = Jupiter(size_scale=0.68e3, distance_scale=1.05) + saturn = Saturn(size_scale=0.68e3, distance_scale=0.72) bodies = [ - sun, # 太阳放大 80 倍 - Mercury(size_scale=3e3), # 水星放大 4000 倍 - Venus(size_scale=3e3), # 金星放大 4000 倍 - Earth(size_scale=3e3), # 地球放大 4000 倍 - Mars(size_scale=3e3), # 火星放大 4000 倍 + sun, + Mercury(size_scale=3e3, distance_scale=7), # 水星放大 4000 倍 + Venus(size_scale=3e3, distance_scale=4.3), # 金星放大 4000 倍 + Earth(size_scale=3e3, distance_scale=3.5), # 地球放大 4000 倍 + Mars(size_scale=3e3, distance_scale=2.6), # 火星放大 4000 倍 asteroids, moon, ceres, @@ -32,8 +38,8 @@ if __name__ == '__main__': # Earth(size_scale=3e3, init_position=[0, 0, (3.64) * AU]), # 地球放大 4000 倍 jupiter, # 木星放大 680 倍 saturn, # 土星放大 680 倍 - Uranus(size_scale=0.8e3), # 天王星放大 800 倍 - Neptune(size_scale=1e3), # 海王星放大 1000 倍 + Uranus(size_scale=0.8e3, distance_scale=0.42), # 天王星放大 800 倍 + Neptune(size_scale=1e3, distance_scale=0.3), # 海王星放大 1000 倍 ] # 水星 0.4AU # 金星 0.4+0.3 AU @@ -81,24 +87,37 @@ if __name__ == '__main__': 事件绑定后,模拟器运行前会触发 @return: """ - from ursina import camera + from ursina import camera, Vec3 # 创建天空 - # create_sphere_sky(scale=20000) + create_sphere_sky(scale=20000) camera.clip_plane_near = 0.1 camera.clip_plane_far = 1000000 + # camera.look_at(saturn.planet) # camera.look_at(sun.planet) # camera.rotation_y = 90 # UniverseSimScenes.show_grid_axises() - asteroids.planet.enabled = False + # asteroids.planet.enabled = False # moon.planet.enabled = False + # + # def after_ready(): + # from ursina import camera, Vec3 + # camera.position = Vec3(0,149.60,-665.76) + # camera.world_position = Vec3(-14.71,-98.38,0) + + def on_timer_changed(time_data): + from ursina import camera, Vec3 + camera.position = Vec3(0, 149.60, -665.76) + camera.world_position = Vec3(-14.71, -98.38, 0) # 运行前会触发 on_ready UrsinaEvent.on_ready_subscription(on_ready) + # UrsinaEvent.after_ready_subscription(after_ready) + # UrsinaEvent.on_timer_changed_subscription(on_timer_changed) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- @@ -108,5 +127,6 @@ if __name__ == '__main__': position=(0, 2 * AU, -11 * AU), # position=(0, 20 * AU, 10 * AU), # position=(0, 20 * AU, 0), + timer_enabled=True, cosmic_bg='', show_grid=False)