From 3085796423ccf3c7bad8da5058174519b2db2f60 Mon Sep 17 00:00:00 2001 From: march3 Date: Fri, 24 Mar 2023 15:43:56 +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/fiction/sun_dysen_sphere.py | 2 +- sim_scenes/science/gravity_slingshot.py | 2 +- sim_scenes/solar_system/earth_at_night.py | 2 +- sim_scenes/solar_system/earth_moon.py | 2 +- sim_scenes/solar_system/hd_mercury.py | 2 +- sim_scenes/solar_system/sun_earth.py | 2 +- sim_scenes/solar_system/sun_earth_jupiter.py | 2 +- sim_scenes/tri_bodies/tri_bodies_01.py | 8 ++++---- sim_scenes/tri_bodies/tri_bodies_02.py | 21 ++++++++++++-------- sim_scenes/tri_bodies/tri_bodies_03.py | 2 +- sim_scenes/tri_bodies/tri_bodies_perfect.py | 2 +- sim_scenes/tri_bodies/two_bodies_01.py | 2 +- simulators/ursina_simulator.py | 6 +++--- simulators/views/ursina_view.py | 2 +- 14 files changed, 31 insertions(+), 26 deletions(-) diff --git a/sim_scenes/fiction/sun_dysen_sphere.py b/sim_scenes/fiction/sun_dysen_sphere.py index 2715019..765f22e 100644 --- a/sim_scenes/fiction/sun_dysen_sphere.py +++ b/sim_scenes/fiction/sun_dysen_sphere.py @@ -27,5 +27,5 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU / 4, -2 * AU), + ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU / 4, -3 * AU), bg_music="sounds/universe_02.mp3") diff --git a/sim_scenes/science/gravity_slingshot.py b/sim_scenes/science/gravity_slingshot.py index 3916b9f..07d5830 100644 --- a/sim_scenes/science/gravity_slingshot.py +++ b/sim_scenes/science/gravity_slingshot.py @@ -32,4 +32,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_MONTH, position=(0, AU, -3 * AU), show_trail=True) + ursina_run(bodies, SECONDS_PER_MONTH, position=(0, AU / 2, -4 * AU), show_trail=True) diff --git a/sim_scenes/solar_system/earth_at_night.py b/sim_scenes/solar_system/earth_at_night.py index 9a5d150..dfc3cce 100644 --- a/sim_scenes/solar_system/earth_at_night.py +++ b/sim_scenes/solar_system/earth_at_night.py @@ -22,4 +22,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_HOUR / 2, position=(0, 200000, -2000000), cosmic_bg="textures/cosmic2.jpg") + ursina_run(bodies, SECONDS_PER_HOUR / 2, position=(0, 120000, -2500000), cosmic_bg="textures/cosmic2.jpg") diff --git a/sim_scenes/solar_system/earth_moon.py b/sim_scenes/solar_system/earth_moon.py index 1fc6e4c..43f0edf 100644 --- a/sim_scenes/solar_system/earth_moon.py +++ b/sim_scenes/solar_system/earth_moon.py @@ -29,4 +29,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_MONTH, position=(-300000, 300000, -1000000), show_trail=True) + ursina_run(bodies, SECONDS_PER_MONTH, position=(-300000, 200000, -1300000), show_trail=True) diff --git a/sim_scenes/solar_system/hd_mercury.py b/sim_scenes/solar_system/hd_mercury.py index a2daa2a..cb81dad 100644 --- a/sim_scenes/solar_system/hd_mercury.py +++ b/sim_scenes/solar_system/hd_mercury.py @@ -22,4 +22,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_DAY, position=(0, 30000, -700000), cosmic_bg="textures/cosmic1.jpg") + ursina_run(bodies, SECONDS_PER_DAY, position=(0, 30000, -800000), cosmic_bg="textures/cosmic1.jpg") diff --git a/sim_scenes/solar_system/sun_earth.py b/sim_scenes/solar_system/sun_earth.py index 89c5ea3..d78263f 100644 --- a/sim_scenes/solar_system/sun_earth.py +++ b/sim_scenes/solar_system/sun_earth.py @@ -25,4 +25,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -3 * AU), show_trail=True) + ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -4 * AU), show_trail=True) diff --git a/sim_scenes/solar_system/sun_earth_jupiter.py b/sim_scenes/solar_system/sun_earth_jupiter.py index 009bfe7..55758c1 100644 --- a/sim_scenes/solar_system/sun_earth_jupiter.py +++ b/sim_scenes/solar_system/sun_earth_jupiter.py @@ -26,4 +26,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -3 * AU), show_trail=True) + ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -4 * AU), show_trail=True) diff --git a/sim_scenes/tri_bodies/tri_bodies_01.py b/sim_scenes/tri_bodies/tri_bodies_01.py index a0a872b..2eb7fa8 100644 --- a/sim_scenes/tri_bodies/tri_bodies_01.py +++ b/sim_scenes/tri_bodies/tri_bodies_01.py @@ -20,11 +20,11 @@ if __name__ == '__main__': """ bodies = [ Sun(mass=1.5e30, init_position=[849597870.700, 0, 0], init_velocity=[0, 7.0, 0], - size_scale=5e1, texture="sun2.jpg"), # 太阳放大 100 倍 + size_scale=5e1, texture="sun2.jpg"), # 太阳放大 50 倍 Sun(mass=2e30, init_position=[0, 0, 0], init_velocity=[0, -8.0, 0], - size_scale=5e1, texture="sun2.jpg"), # 太阳放大 100 倍 + size_scale=5e1, texture="sun2.jpg"), # 太阳放大 50 倍 Sun(mass=2.5e30, init_position=[0, -849597870.700, 0], init_velocity=[18.0, 0, 0], - size_scale=5e1, texture="sun2.jpg"), # 太阳放大 100 倍 + size_scale=5e1, texture="sun2.jpg"), # 太阳放大 50 倍 Earth(init_position=[0, -349597870.700, 0], init_velocity=[15.50, 0, 0], size_scale=4e3, distance_scale=1), # 地球放大 4000 倍,距离保持不变 ] @@ -34,4 +34,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, AU, -4 * AU), show_trail=True) \ No newline at end of file + ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, AU, -5 * AU), show_trail=True) \ No newline at end of file diff --git a/sim_scenes/tri_bodies/tri_bodies_02.py b/sim_scenes/tri_bodies/tri_bodies_02.py index 8fec6fa..dc86bc8 100644 --- a/sim_scenes/tri_bodies/tri_bodies_02.py +++ b/sim_scenes/tri_bodies/tri_bodies_02.py @@ -7,7 +7,7 @@ # python_version :3.8 # ============================================================================== from bodies import Sun, Earth -from common.consts import SECONDS_PER_WEEK, SECONDS_PER_DAY +from common.consts import SECONDS_PER_WEEK, SECONDS_PER_DAY, SECONDS_PER_YEAR, AU from sim_scenes.func import mayavi_run, ursina_run if __name__ == '__main__': @@ -19,16 +19,21 @@ if __name__ == '__main__': 3、天体质量 mass """ bodies = [ - Sun(mass=5e30, init_position=[649597870.700, 0, 0], init_velocity=[0, 5.0, 0], - size_scale=5e1, texture="sun1.jpg"), # 太阳放大 100 倍 - Sun(mass=4e30, init_position=[0, 0, 249597870.700], init_velocity=[0, -6.0, 0], - size_scale=5e1, texture="sun2.jpg"), # 太阳放大 100 倍 - Sun(mass=3e30, init_position=[0, -649597870.700, 0], init_velocity=[6.0, 0, 0], - size_scale=5e1, texture="sun2.jpg"), # 太阳放大 100 倍 + Sun(mass=5e30, init_position=[649597870.700, 0, 0], init_velocity=[0, 15.0, 0], + size_scale=5e1, texture="sun1.jpg"), # 太阳放大 50 倍 + Sun(mass=4e30, init_position=[0, 0, 249597870.700], init_velocity=[0, -16.0, 0], + size_scale=5e1, texture="sun2.jpg"), # 太阳放大 50 倍 + Sun(mass=3e30, init_position=[0, -649597870.700, 0], init_velocity=[16.0, 0, 0], + size_scale=5e1, texture="sun2.jpg"), # 太阳放大 50 倍 Earth(init_position=[0, -249597870.700, 0], init_velocity=[15.50, 0, 0], size_scale=4e3, distance_scale=1), # 地球放大 4000 倍,距离保持不变 ] # 使用 mayavi 查看的运行效果 - mayavi_run(bodies, SECONDS_PER_WEEK, view_azimuth=0) + # mayavi_run(bodies, SECONDS_PER_WEEK, view_azimuth=0) + + # 使用 ursina 查看的运行效果 + # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 + # position = 左-右+、上+下-、前+后- + ursina_run(bodies, SECONDS_PER_YEAR, position=(2 * AU, 3 * AU, -20 * AU), show_trail=True) \ No newline at end of file diff --git a/sim_scenes/tri_bodies/tri_bodies_03.py b/sim_scenes/tri_bodies/tri_bodies_03.py index ff01efb..1a5b29a 100644 --- a/sim_scenes/tri_bodies/tri_bodies_03.py +++ b/sim_scenes/tri_bodies/tri_bodies_03.py @@ -59,4 +59,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, 3 * AU, -20 * AU), show_trail=True) + ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, 5 * AU, -20 * AU), show_trail=True) diff --git a/sim_scenes/tri_bodies/tri_bodies_perfect.py b/sim_scenes/tri_bodies/tri_bodies_perfect.py index dc51147..8bfd5a9 100644 --- a/sim_scenes/tri_bodies/tri_bodies_perfect.py +++ b/sim_scenes/tri_bodies/tri_bodies_perfect.py @@ -54,6 +54,6 @@ if __name__ == '__main__': # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- ursina_run(bodies, SECONDS_PER_YEAR, - position=(-2 * AU, 1.5 * AU, -8 * AU), + position=(-2 * AU, 1.5 * AU, -9 * AU), # save_as_json="../../data/tri_bodies_perfect_05.json", # 保存 json 文件到 data 目录 show_trail=True) diff --git a/sim_scenes/tri_bodies/two_bodies_01.py b/sim_scenes/tri_bodies/two_bodies_01.py index b617d85..b58e4da 100644 --- a/sim_scenes/tri_bodies/two_bodies_01.py +++ b/sim_scenes/tri_bodies/two_bodies_01.py @@ -33,4 +33,4 @@ if __name__ == '__main__': # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # position = 左-右+、上+下-、前+后- - ursina_run(bodies, SECONDS_PER_YEAR, position=(0, 2 * AU, -5 * AU), show_trail=True) \ No newline at end of file + ursina_run(bodies, SECONDS_PER_YEAR, position=(AU, 2 * AU, -7 * AU), show_trail=True) \ No newline at end of file diff --git a/simulators/ursina_simulator.py b/simulators/ursina_simulator.py index 84a4892..1d3477f 100644 --- a/simulators/ursina_simulator.py +++ b/simulators/ursina_simulator.py @@ -234,9 +234,9 @@ class UrsinaSimulator(Simulator): window.title = '宇宙模拟器' # 设置 camera 的裁剪面和位置 - # camera.clip_plane_near = 0.01 - # camera.fov = 120 - # camera.clip_plane_far = 1000 + camera.clip_plane_near = 0.01 + camera.fov = 60 + camera.clip_plane_far = 50000 # camera.position = (0, 10, -20) # camera.rotation_x = -30 diff --git a/simulators/views/ursina_view.py b/simulators/views/ursina_view.py index 8e8e7c5..d6fa3fa 100644 --- a/simulators/views/ursina_view.py +++ b/simulators/views/ursina_view.py @@ -119,7 +119,7 @@ class Planet(Entity): color=self.plant_color, position=pos, rotation=rotation, - double_sided=True + # double_sided=True ) if hasattr(self.body_view.body, "torus_stars") or \ -- GitLab