diff --git a/simulators/mpl/mpl_2d_simulator_arrow.py b/simulators/mpl/mpl_2d_simulator_arrow.py index 205756d4a981215c84e3f9cc36eaf317833cfc81..613386aa9cc97ffde73e4f0ae9ee14ca9747dfb1 100644 --- a/simulators/mpl/mpl_2d_simulator_arrow.py +++ b/simulators/mpl/mpl_2d_simulator_arrow.py @@ -118,9 +118,12 @@ def 场景2(): pA, pB = [pxA, pyA], [pxB, pyB] vxA, vxB = 0, 0 + # https://latex.codecogs.com/svg.image?\frac{G.mA.mB}{(r1+r2)^{2}}%20=%20mA.\frac{vA^{2}}{r1}=%20mB.\frac{vB^{2}}{r1} # 万有引力常量 *mA * mB/ math.pow(r1+r2,2) = mA*math.pow(vyA,2)/r1 + # https://latex.codecogs.com/svg.image?vyA%20=%20\sqrt{\frac{G.mA.mB}{(r1+r2)^{2}}*\frac{r1}{mA}} vyA = -math.sqrt((万有引力常量 * mA * mB) / math.pow(r1 + r2, 2) * r1 / mA) # 万有引力常量 *mA * mB/ math.pow(r1+r2,2) = mB*math.pow(vyB,2)/r2 + # https://latex.codecogs.com/svg.image?vyB%20=%20\sqrt{\frac{G.mA.mB}{(r1+r2)^{2}}*\frac{r2}{mB}} vyB = math.sqrt((万有引力常量 * mA * mB) / math.pow(r1 + r2, 2) * r2 / mB) vA, vB = [vxA, vyA], [vxB, vyB] 星球列表 = [ @@ -228,11 +231,12 @@ def 更新(帧): # 更新速度文本 速度文本列表[i].set_position((x + 偏移量_x - 2, y + 偏移量_y + 3)) - 速度文本列表[i].set_text(f"v:{星球.速度[0]:+.2f},{星球.速度[1]:+.2f}(m/s)") - + # 速度文本列表[i].set_text(f"v:{星球.速度[0]:+.2f},{星球.速度[1]:+.2f}(m/s)") + 速度文本列表[i].set_text(f"v:{np.linalg.norm(星球.速度):.2f}(m/s)") # 更新加速度文本 加速度文本列表[i].set_position((x + 偏移量_x - 2, y + 偏移量_y + 5)) - 加速度文本列表[i].set_text(f"a:{星球.加速度[0]:+.2f},{星球.加速度[1]:+.2f}(m/s²)") + # 加速度文本列表[i].set_text(f"a:{星球.加速度[0]:+.2f},{星球.加速度[1]:+.2f}(m/s²)") + 加速度文本列表[i].set_text(f"a:{np.linalg.norm(星球.加速度):.2f}(m/s²)") return 点列表 + 轨迹列表 + 名称列表 + 速度线列表 + 加速度线列表 + 速度文本列表 + 加速度文本列表