代码之家  ›  专栏  ›  技术社区  ›  danglingPointer

如何检测一个球是否会与另一个球碰撞,以及碰撞的法向量?

  •  0
  • danglingPointer  · 技术社区  · 12 年前

    所以我有一个2D游戏,涉及球(圆)碰撞。我希望能够检测两个球在碰撞发生之前是否会发生碰撞,以及碰撞将要发生时碰撞的法向量。请看下图:

    Determining if balls will collide

    本质上,我感兴趣的是红色箭头所表示的归一化向量。如果我知道以下内容,我如何才能最有效地计算出任何帧:

    • 蓝色球具有当前的初始速度
    • 球被恒定的重力拉下来
    • 绿球不动
    • 两个球的尺寸和位置
    1 回复  |  直到 12 年前
        1
  •  1
  •   zxcvb1    12 年前

    我们假设: r1绿球半径 (x1,y1)绿球的位置 r2蓝球半径 (x2,y2)蓝色球的位置

    球之间的距离是 d^2=(x2-x1)^2+(y2-y1)^2 碰撞发生在 d^2=(r1+r2)^2

    当d=r1+r2时,矢量正好为(x2-x1,y2-y1)