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

Python超人-宇宙模拟器

上级 3dd9d0cd
......@@ -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")
......@@ -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)
......@@ -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")
......@@ -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)
......@@ -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")
......@@ -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)
......@@ -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)
......@@ -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
......@@ -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
......@@ -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)
......@@ -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)
......@@ -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
......@@ -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
......
......@@ -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 \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册