新闻中心

两个圆形物体斜着相碰时速度怎样分解:状态推演第17例

2026-11-12

两个物体斜向接触时,相对运动可以分成沿接触法线和沿切线的两部分。只改变法线分量,就能构造一个没有摩擦的二维碰撞模型,而不必把整个速度向量都反向。

先把规则写清楚

本例法线n是单位向量,由物体A指向B,切线取负ny、nx。相对速度是B减A;其法线分量小于零才视为正在接近。冲量大小为负的(一加恢复系数)乘该分量,再除以两质量倒数之和。A减去冲量除质量乘法线,B加上相应项。

本例输入与推演结果

六组独立接触状态,长度和时间使用同一套单位,所有分数保留精确值。

输入质量、速度、法线、恢复系数 | 相对法线速度 | 冲量 | A后速度 | B后速度 | 动能前后 {'mass': [6, 2], 'a': [2, 4], 'b': [2, 4], 'n': ['1', '0'], 'e': '0'} | 0 | 0 | ['2', '4'] | ['2', '4'] | 80→80 {'mass': [4, 3], 'a': [-4, -2], 'b': [-2, -2], 'n': ['4/5', '-3/5'], 'e': '1/2'} | 8/5 | 0 | ['-4', '-2'] | ['-2', '-2'] | 52→52 {'mass': [7, 3], 'a': [-2, 3], 'b': [2, 1], 'n': ['3/5', '4/5'], 'e': '1'} | 4/5 | 0 | ['-2', '3'] | ['2', '1'] | 53→53 {'mass': [6, 5], 'a': [-4, 3], 'b': [2, -4], 'n': ['4/5', '-3/5'], 'e': '0'} | 9 | 0 | ['-4', '3'] | ['2', '-4'] | 125→125 {'mass': [7, 3], 'a': [-2, 1], 'b': [0, -1], 'n': ['3/5', '4/5'], 'e': '1/2'} | -2/5 | 63/50 | ['-527/250', '107/125'] | ['63/250', '-83/125'] | 19→9437/500 {'mass': [1, 4], 'a': [-1, 5], 'b': [5, 0], 'n': ['0', '1'], 'e': '1'} | -5 | 8 | ['-1', '-3'] | ['5', '2'] | 63→63

这里的编号只用来辨认本例中的对象,不能当成另一份记录里的固定身份。阅读表格时先找到输入,再顺着运算顺序对照输出;空列表、零值和不存在的结果有不同含义,不能混用。表中分数保留精确值,小数显示仅为阅读方便。

怎样自己复核

逐项比较碰撞前后总动量,两个坐标方向都应保持。碰撞后的相对法线速度应是原值乘负恢复系数,而各物体切线速度不变。恢复系数在零到一之间时,总动能不能增加;正在远离的两物体不再施加冲量。

练习时分别把恢复系数设为零和一,观察法线相对速度与能量变化。质量很大的一方速度变化较小,但本例质量都有限,不能直接把其中一个当成完全不动的墙。若法线不是单位向量,必须先调整公式,不能照搬这里的数值。

适用范围

这是一次已经确定接触方向的速度响应,不负责寻找首次接触时刻、修正穿透或处理旋转。没有摩擦意味着切向冲量为零,不意味着两个物体原本没有切向速度。

本例是一套可复现的游戏机制练习,不依赖具体品牌或某个软件的默认设置。修改任何边界约定、输入参数或操作顺序后,应重新推演并保存中间状态。发现差异时先定位第一处不一致,再判断是规则不同还是计算错误,不要只把最终答案调整到看起来相同。