在撞墙后找到球的方向

时间:2016-09-25 03:31:29

标签: c++ physics

我想在openGL c ++中实现以下场景。假设有一个球在一个表面上移动,并且在所有四个方向上都有一条边界线。当球击中其中一条线时,它会向一个方向反射。我的问题是有没有办法找到或计算出数学方向,球会撞到墙后?

2 个答案:

答案 0 :(得分:2)

对于没有变形和等熵接触的完美球,球会以相同的角度反射,但90度通过它。因此,如果你的球与墙壁成30度角,它会从墙壁30度处脱落,但是在墙壁正常的另一侧“”。 Ball Reflecting

答案 1 :(得分:0)

如果您不想更改速度而只想更改目录,那么很容易计算。您只需要根据它是分别达到垂直或水平边界来切换水平或垂直速度的方向。

我们假设您的水平和垂直速度分别为vx, vy。如果球被击中左边界或右边界然后vx = -vx,如果球被击中顶部或底部边界,则vy = -vy。无论当前速度的方向如何,这都将起作用,即,球现在是向左/向右,向上/向下移动也无关紧要。碰撞后,它只会切换正确的方向。