首页 > 解决方案 > 如何模拟圆与线段末端之间的碰撞

问题描述

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

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

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

标签: algorithmmathgeometrycollision-detection

解决方案


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

我假设:

  • 线段是固定的,即它不会移动。
  • 没有能量进入圆的旋转/旋转
  • 这是弹性碰撞;无摩擦;归还 100%

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

在此处输入图像描述


推荐阅读