弹跳球关闭具有任意角度的壁?(Bouncing a ball off a wall with arb

2019-07-28 20:54发布

我试图让用户绘制一个桨,他们就可以使用投中一球。 不过,我似乎无法得到,因为球的速度的x和y分量不与墙壁一字排开球正确反弹。 我怎样才能解决这个问题?

我试图通过加雷思·里斯提出的意见在这里 ,但显然我不知道有足够的了解向量能够遵循它。 例如,我不知道你在矢量存储到底是什么 - 我知道这是有方向的值,但是你存储2点这之间,坡度,角度?

我真正需要的球击中,去寻找新的x和y的速度之后给出壁和X和Y速度的角度。

Answer 1:

加雷思·雷斯得到了公式是正确的,但我发现的照片和说明这里更加清楚一点。 即,基本公式为:

Vnew = -2*(V dot N)*N + V
where
V = Incoming Velocity Vector
N = The Normal Vector of the wall

既然你不熟悉的矢量符号,这里就是你需要知道这个公式是什么:矢量基本上只是X,Y对,所以V = (vx, vy)N = (nx, ny) 平面最好由垂直于该平面所描述的,即单位长度的矢量垂直于所述平面。 然后几个通式中, b*V = (b*vx, b*vy) ; V dot N = vx*n.x+vy*ny ,也就是说,它是一个标量; 并且A + B = (a.x+bx, a.y+by) 最后,为了找到基于任意矢量的单位矢量,它是N = M/sqrt(M dot M)

如果表面是弯曲的,使用普通的在接触点。



文章来源: Bouncing a ball off a wall with arbitrary angle?