公司新闻

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

2026-11-12

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

先把规则写清楚

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

本例输入与推演结果

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

输入质量、速度、法线、恢复系数 | 相对法线速度 | 冲量 | A后速度 | B后速度 | 动能前后 {'mass': [4, 3], 'a': [-3, -1], 'b': [4, -1], 'n': ['3/5', '4/5'], 'e': '0'} | 21/5 | 0 | ['-3', '-1'] | ['4', '-1'] | 91/2→91/2 {'mass': [4, 2], 'a': [-2, 3], 'b': [-2, 1], 'n': ['4/5', '-3/5'], 'e': '1/2'} | 6/5 | 0 | ['-2', '3'] | ['-2', '1'] | 31→31 {'mass': [6, 6], 'a': [3, 0], 'b': [-4, -3], 'n': ['0', '1'], 'e': '1'} | -3 | 18 | ['3', '-3'] | ['-4', '0'] | 102→102 {'mass': [2, 7], 'a': [2, 3], 'b': [-2, 0], 'n': ['4/5', '-3/5'], 'e': '0'} | -7/5 | 98/45 | ['254/225', '274/75'] | ['-394/225', '-14/75'] | 27→5732/225 {'mass': [3, 5], 'a': [-5, -4], 'b': [-2, 2], 'n': ['1', '0'], 'e': '1/2'} | 3 | 0 | ['-5', '-4'] | ['-2', '2'] | 163/2→163/2 {'mass': [1, 1], 'a': [-5, -5], 'b': [-1, -5], 'n': ['1', '0'], 'e': '1'} | 4 | 0 | ['-5', '-5'] | ['-1', '-5'] | 38→38

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

怎样自己复核

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

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

适用范围

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

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