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

时间:2014-08-01 20:02:09

标签: collision

所以我有一个涉及球(圆圈)碰撞的2D游戏。我想能够检测两个球是否会在它发生之前发生碰撞,以及碰撞发生时碰撞的法线向量。看看下面的图片:

Determining if balls will collide

基本上,由红色箭头表示的标准化矢量是我感兴趣的。如果我知道以下内容,我怎么能最有效地计算出任何框架:

  • 蓝色球具有当前初始速度
  • 球由恒定的重力下拉
  • 绿球不动
  • 两个球的大小和位置

1 个答案:

答案 0 :(得分:1)

让我们假设: 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)