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

Python超人-宇宙模拟器

上级 2689acd0
......@@ -42,7 +42,7 @@ class 星球:
"""
if 大小 is None:
# 大小 = np.sqrt(质量) / 1000
大小 = np.power(质量, 0.2) / 10
大小 = np.power(质量, 0.16) / 10
self.质量 = 质量
self.位置 = np.array(位置, dtype=float)
self.速度 = np.array(速度, dtype=float)
......@@ -96,12 +96,12 @@ def 场景1():
时间步长 = 0.01
# 创建星球列表
星球列表 = [
星球(质量=5e12, 位置=[0, 0], 速度=[0, 0.1], 颜色='red', 名称偏移=[1, 0]),
星球(质量=5e10, 位置=[20, 0], 速度=[0, 2], 颜色='blue'),
星球(质量=5e10, 位置=[-20, 0], 速度=[0, -2], 颜色='green')
星球(质量=5e12, 位置=[0, 0], 速度=[0, 0.2], 颜色='red', 名称偏移=[1, 0]),
星球(质量=5e11, 位置=[25, 0], 速度=[0, 2], 颜色='blue'),
星球(质量=5e11, 位置=[-25, 0], 速度=[0, -2], 颜色='green')
]
坐标轴.set_xlim(-50, 50)
坐标轴.set_ylim(-50, 50)
坐标轴.set_ylim(-20, 80)
def 场景2():
......@@ -134,8 +134,8 @@ def 场景2():
坐标轴.set_ylim(-10, 50)
# 场景1()
场景2()
场景1()
# 场景2()
# 设置纵横比为固定值,使得 X、Y 刻度比例不变
坐标轴.set_aspect('equal')
......@@ -198,7 +198,7 @@ def 更新(帧):
轨迹列表[i].set_data(轨迹[:, 0], 轨迹[:, 1])
偏移量_x, 偏移量_y = 0, 0 # 星球.名称偏移 星球.位置[0] + 偏移量_x + 0.5, 星球.位置[1] + 偏移量_y
名称列表[i].set_position((x - 0.8, y - 1))
min_length, max_length = 4, 100
min_length, max_length = 0, 100
# 更新速度箭头
速度线列表[i].remove()
dx, dy = 星球.速度[0] * 速度线长率, 星球.速度[1] * 速度线长率
......@@ -210,7 +210,7 @@ def 更新(帧):
# 重新设置 dx,dy ,使得 (dx ** 2 + dy ** 2) ** 0.5 = 5
dx, dy = dx / distance * min_length, dy / distance * min_length
速度线 = plt.arrow(x, y, dx, dy, width=0.05, head_width=1, color=星球.颜色)
速度线 = plt.arrow(x, y, dx, dy, width=0.02, head_width=0.8, color=星球.颜色)
速度线列表[i] = 速度线
坐标轴.add_patch(速度线)
......@@ -225,7 +225,7 @@ def 更新(帧):
# 重新设置 dx,dy ,使得 (dx ** 2 + dy ** 2) ** 0.5 = 5
dx, dy = dx / distance * min_length, dy / distance * min_length
加速度线 = plt.arrow(x, y, dx, dy, width=0.05, head_width=1, color="black")
加速度线 = plt.arrow(x, y, dx, dy, width=0.02, head_width=0.8, color="black")
加速度线列表[i] = 加速度线
坐标轴.add_patch(加速度线)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册