提交 30857964 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 3dd9d0cd
...@@ -27,5 +27,5 @@ if __name__ == '__main__': ...@@ -27,5 +27,5 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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") bg_music="sounds/universe_02.mp3")
...@@ -32,4 +32,4 @@ if __name__ == '__main__': ...@@ -32,4 +32,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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)
...@@ -22,4 +22,4 @@ if __name__ == '__main__': ...@@ -22,4 +22,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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")
...@@ -29,4 +29,4 @@ if __name__ == '__main__': ...@@ -29,4 +29,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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)
...@@ -22,4 +22,4 @@ if __name__ == '__main__': ...@@ -22,4 +22,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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")
...@@ -25,4 +25,4 @@ if __name__ == '__main__': ...@@ -25,4 +25,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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)
...@@ -26,4 +26,4 @@ if __name__ == '__main__': ...@@ -26,4 +26,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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)
...@@ -20,11 +20,11 @@ if __name__ == '__main__': ...@@ -20,11 +20,11 @@ if __name__ == '__main__':
""" """
bodies = [ bodies = [
Sun(mass=1.5e30, init_position=[849597870.700, 0, 0], init_velocity=[0, 7.0, 0], 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], 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], 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], Earth(init_position=[0, -349597870.700, 0], init_velocity=[15.50, 0, 0],
size_scale=4e3, distance_scale=1), # 地球放大 4000 倍,距离保持不变 size_scale=4e3, distance_scale=1), # 地球放大 4000 倍,距离保持不变
] ]
...@@ -34,4 +34,4 @@ if __name__ == '__main__': ...@@ -34,4 +34,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # position = 左-右+、上+下-、前+后-
ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, AU, -4 * AU), show_trail=True) ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, AU, -5 * AU), show_trail=True)
\ No newline at end of file \ No newline at end of file
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
# python_version :3.8 # python_version :3.8
# ============================================================================== # ==============================================================================
from bodies import Sun, Earth 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 from sim_scenes.func import mayavi_run, ursina_run
if __name__ == '__main__': if __name__ == '__main__':
...@@ -19,16 +19,21 @@ if __name__ == '__main__': ...@@ -19,16 +19,21 @@ if __name__ == '__main__':
3、天体质量 mass 3、天体质量 mass
""" """
bodies = [ bodies = [
Sun(mass=5e30, init_position=[649597870.700, 0, 0], init_velocity=[0, 5.0, 0], Sun(mass=5e30, init_position=[649597870.700, 0, 0], init_velocity=[0, 15.0, 0],
size_scale=5e1, texture="sun1.jpg"), # 太阳放大 100 倍 size_scale=5e1, texture="sun1.jpg"), # 太阳放大 50 倍
Sun(mass=4e30, init_position=[0, 0, 249597870.700], init_velocity=[0, -6.0, 0], Sun(mass=4e30, init_position=[0, 0, 249597870.700], init_velocity=[0, -16.0, 0],
size_scale=5e1, texture="sun2.jpg"), # 太阳放大 100 倍 size_scale=5e1, texture="sun2.jpg"), # 太阳放大 50 倍
Sun(mass=3e30, init_position=[0, -649597870.700, 0], init_velocity=[6.0, 0, 0], Sun(mass=3e30, init_position=[0, -649597870.700, 0], init_velocity=[16.0, 0, 0],
size_scale=5e1, texture="sun2.jpg"), # 太阳放大 100 倍 size_scale=5e1, texture="sun2.jpg"), # 太阳放大 50 倍
Earth(init_position=[0, -249597870.700, 0], init_velocity=[15.50, 0, 0], Earth(init_position=[0, -249597870.700, 0], init_velocity=[15.50, 0, 0],
size_scale=4e3, distance_scale=1), # 地球放大 4000 倍,距离保持不变 size_scale=4e3, distance_scale=1), # 地球放大 4000 倍,距离保持不变
] ]
# 使用 mayavi 查看的运行效果 # 使用 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
...@@ -59,4 +59,4 @@ if __name__ == '__main__': ...@@ -59,4 +59,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # 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)
...@@ -54,6 +54,6 @@ if __name__ == '__main__': ...@@ -54,6 +54,6 @@ if __name__ == '__main__':
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # position = 左-右+、上+下-、前+后-
ursina_run(bodies, SECONDS_PER_YEAR, 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 目录 # save_as_json="../../data/tri_bodies_perfect_05.json", # 保存 json 文件到 data 目录
show_trail=True) show_trail=True)
...@@ -33,4 +33,4 @@ if __name__ == '__main__': ...@@ -33,4 +33,4 @@ if __name__ == '__main__':
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # position = 左-右+、上+下-、前+后-
ursina_run(bodies, SECONDS_PER_YEAR, position=(0, 2 * AU, -5 * AU), show_trail=True) ursina_run(bodies, SECONDS_PER_YEAR, position=(AU, 2 * AU, -7 * AU), show_trail=True)
\ No newline at end of file \ No newline at end of file
...@@ -234,9 +234,9 @@ class UrsinaSimulator(Simulator): ...@@ -234,9 +234,9 @@ class UrsinaSimulator(Simulator):
window.title = '宇宙模拟器' window.title = '宇宙模拟器'
# 设置 camera 的裁剪面和位置 # 设置 camera 的裁剪面和位置
# camera.clip_plane_near = 0.01 camera.clip_plane_near = 0.01
# camera.fov = 120 camera.fov = 60
# camera.clip_plane_far = 1000 camera.clip_plane_far = 50000
# camera.position = (0, 10, -20) # camera.position = (0, 10, -20)
# camera.rotation_x = -30 # camera.rotation_x = -30
......
...@@ -119,7 +119,7 @@ class Planet(Entity): ...@@ -119,7 +119,7 @@ class Planet(Entity):
color=self.plant_color, color=self.plant_color,
position=pos, position=pos,
rotation=rotation, rotation=rotation,
double_sided=True # double_sided=True
) )
if hasattr(self.body_view.body, "torus_stars") or \ if hasattr(self.body_view.body, "torus_stars") or \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册