无需登录 数据私有 本地保存

弹性碰撞模拟 - 多球动量守恒演示

17
0
0
0
弹性碰撞模拟
总动量 0.00 (矢量模长)
总动能 0.00 J
球数量 5
图例: m=2.0 m=1.0 m=3.0 m=1.5 m=2.5 | 拖拽球可投掷 · 球大小∝质量

常见问题与知识点

弹性碰撞是指碰撞前后系统总动能保持不变的碰撞过程。在弹性碰撞中,物体碰撞后会分开,动能不会转化为热能、声能等其他形式的能量。

与之相对的是完全非弹性碰撞:碰撞后物体粘在一起以共同速度运动,此时动能损失最大(但动量依然守恒)。本工具模拟的是二维弹性碰撞,同时满足动量守恒和动能守恒。

动量守恒定律指出:系统总动量在碰撞前后保持不变。公式为:
m₁v₁ + m₂v₂ = m₁v₁' + m₂v₂'

在本模拟中,您可以观察底部统计栏的"总动量"数值——它在碰撞瞬间保持不变(允许微小数值误差)。这是物理学中最基本的守恒定律之一,源自空间的平移对称性(诺特定理)。

二维弹性碰撞的计算方法:
1. 将速度分解为碰撞法线方向(球心连线方向)和切向方向(垂直于法线)
2. 在法线方向上应用一维弹性碰撞公式:
v₁ₙ' = ((m₁-m₂)v₁ₙ + 2m₂v₂ₙ) / (m₁+m₂)
v₂ₙ' = ((m₂-m₁)v₂ₙ + 2m₁v₁ₙ) / (m₁+m₂)
3. 切向速度分量保持不变
4. 将两个分量重新合成得到碰撞后的二维速度向量

这是由于数值计算精度导致的。模拟使用离散时间步长(约60帧/秒),在碰撞检测和位置修正过程中会产生微小的浮点数舍入误差。长时间运行后,总动能可能会有极微小的漂移(通常<0.1%),这是数值模拟的正常现象。本工具在每帧都会重新计算并显示实时总动量与总动能。

拖拽投掷:用鼠标按住任意球体并快速拖拽,释放后球将以拖拽速度飞出——就像"弹弓"一样。
添加球:点击"添加球"按钮在随机位置生成一个新球。
删除球:双击任意球体即可将其移除。
速度箭头:切换显示每个球的速度向量箭头。
网格背景:切换参考网格,便于观察运动轨迹。
暂停/播放:随时冻结或恢复模拟。