如何模拟圆和线段末端之间的碰撞

How to model collision between circle and the end of a line segment

我有一个圆向固定线段(从 A 点到 B 点的有限长度)移动。我想模拟碰撞(找到碰撞后的圆的方向和速度)当接触点是线段的确切末端(比如点 B),而不是在线段内。

当圆接触线段内的线时,就像撞球从泳池 table 栏杆上弹起一样,方程式相当容易或至少很容易找到。但是,当圆与线段的确切末端的线接触时会发生什么?是不是就像一个圆和一个无限小的圆的碰撞?对碰撞进行数学建模以确定碰撞后圆的去向的方法是什么?

我应该提一下,我正在寻找游戏背景下该问题的答案。所以我更愿意寻找看起来足够逼真的东西,而不是可以用于真实(即超精确)物理模拟的东西。

线段的方向或长度并不重要,重要的是圆命中的终点位置。

我假设:

  • 线段是固定的,即不会移动
  • 没有能量进入圆rotation/spin
  • 是弹性碰撞;无摩擦;恢复原状为 100%

当圆撞击终点时,就好像它在撞击点撞击了一条与圆相切的线。圆的速度将是在该切线中镜像的原始速度。换句话说,投影在切线上的速度不会改变。投影在切线法线上的速度反转。