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

太阳系三体模拟器

上级 593d631d
...@@ -83,7 +83,7 @@ def ursina_run(bodies, ...@@ -83,7 +83,7 @@ def ursina_run(bodies,
body_sys = System(bodies) body_sys = System(bodies)
if save_as_json is not None: if save_as_json is not None:
try: try:
body_sys.save_to_json(save_as_json, {"dt": dt, "position": position}) body_sys.save_to_json(save_as_json, {"dt": dt, "position": position, "show_trail": show_trail})
print(f"{save_as_json} 文件生成成功!") print(f"{save_as_json} 文件生成成功!")
except Exception as e: except Exception as e:
print(f"{save_as_json} 文件生成失败!" + str(e)) print(f"{save_as_json} 文件生成失败!" + str(e))
......
...@@ -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)) ursina_run(bodies, SECONDS_PER_MONTH, position=(0, AU, -3 * AU), show_trail=True)
...@@ -15,8 +15,7 @@ if __name__ == '__main__': ...@@ -15,8 +15,7 @@ if __name__ == '__main__':
太阳、地球 Sirius(size_scale=0.2, init_position=[0, 0, 0]), 太阳、地球 Sirius(size_scale=0.2, init_position=[0, 0, 0]),
""" """
bodies = [ bodies = [
Sirius(size_scale=2e1,init_position=[0,0,0]), Sun(size_scale=5e1), # 太阳放大 50 倍
Sun(size_scale=5e1,init_position=[0,0,0]), # 太阳放大 50 倍
Earth(size_scale=2e3, distance_scale=1), # 地球放大 2000 倍,距离保持不变 Earth(size_scale=2e3, distance_scale=1), # 地球放大 2000 倍,距离保持不变
] ]
...@@ -26,4 +25,4 @@ if __name__ == '__main__': ...@@ -26,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)) ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -3 * 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)) ursina_run(bodies, SECONDS_PER_WEEK, position=(0, AU, -3 * AU), show_trail=True)
...@@ -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)) ursina_run(bodies, SECONDS_PER_YEAR, position=(3 * AU, 3 * AU, -20 * AU), show_trail=True)
...@@ -53,4 +53,4 @@ if __name__ == '__main__': ...@@ -53,4 +53,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)) ursina_run(bodies, SECONDS_PER_YEAR, position=(-2 * AU, AU, -5 * AU), 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)) ursina_run(bodies, SECONDS_PER_YEAR, position=(0, 2 * AU, -5 * AU), show_trail=True)
\ No newline at end of file \ No newline at end of file
...@@ -29,9 +29,10 @@ if __name__ == '__main__': ...@@ -29,9 +29,10 @@ if __name__ == '__main__':
dt = params["dt"] if "dt" in params else SECONDS_PER_YEAR dt = params["dt"] if "dt" in params else SECONDS_PER_YEAR
position = params["position"] if "position" in params else (0, 0, 0) position = params["position"] if "position" in params else (0, 0, 0)
show_trail = params["show_trail"] if "show_trail" in params else True
# 使用 ursina 查看的运行效果 # 使用 ursina 查看的运行效果
# 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹
# position = 左-右+、上+下-、前+后- # position = 左-右+、上+下-、前+后-
json_file = None # 指定 json_file 保存路径,则会将模拟环境天体数据保存到该json文件中 json_file = None # 指定 json_file 保存路径,则会将模拟环境天体数据保存到该json文件中
ursina_run(bodies, dt, position=position, save_as_json=json_file) ursina_run(bodies, dt, position=position, save_as_json=json_file, show_trail=show_trail)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册