我想在openGL c ++中实现以下场景。假设有一个球在一个表面上移动,并且在所有四个方向上都有一条边界线。当球击中其中一条线时,它会向一个方向反射。我的问题是有没有办法找到或计算出数学方向,球会撞到墙后?
答案 0 :(得分:2)
答案 1 :(得分:0)
如果您不想更改速度而只想更改目录,那么很容易计算。您只需要根据它是分别达到垂直或水平边界来切换水平或垂直速度的方向。
我们假设您的水平和垂直速度分别为vx, vy
。如果球被击中左边界或右边界然后vx = -vx
,如果球被击中顶部或底部边界,则vy = -vy
。无论当前速度的方向如何,这都将起作用,即,球现在是向左/向右,向上/向下移动也无关紧要。碰撞后,它只会切换正确的方向。