【问题标题】:special case of collision detection碰撞检测的特例
【发布时间】:2019-03-13 00:14:35
【问题描述】:

如果我研究一维上两个球的碰撞检测。 假设第一个在位置 0 并且他的速度为每帧 5 个像素, 第二个在位置 3 和他的速度 -5 像素每帧 然后在下一帧中,第一个球将移动到位置 5,第二个球将跳到位置 -2。 在这种情况下,它们之间没有重叠,因此碰撞检测将失败。 我该如何处理这种情况?这里有一张图来解释:

【问题讨论】:

  • 您能否将时间范围拆分得足够小,使球只能通过其部分半径的距离?所以会检测到碰撞。
  • @Lei 的建议是一种很常见的处理方式。您还可以计算碰撞的确切时间并检查它是否在最后一帧和当前帧之间。

标签: graphics collision-detection physics


【解决方案1】:

您可以估计和检查碰撞:

但在您的情况下,运动是一维和线性的,因此您可以轻松地直接计算碰撞时间...

pos0 + vel0*t = pos1 + vel1*t
   0 +    5*t =    3 -    5*t
         10*t =    3
            t =    3/10
            t =    0.3

所以碰撞发生在 0.3 帧之后...您还可以添加对象的半径以提高时间的准确性...如果您还想要碰撞位置:

pos0 + vel0*t = 0 + 5*0.3 = 1.5
pos1 + vel1*t = 3 - 5*0.3 = 1.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多