【问题标题】:Finding the direction of a ball after hitting a wall撞墙后寻找球的方向
【发布时间】:2016-09-25 11:51:24
【问题描述】:

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

【问题讨论】:

标签: c++ physics


【解决方案1】:

对于一个没有变形和等熵接触的完美球,球会以它进入的相同角度反射,但 90 度通过它。因此,如果您的球从墙壁 30 度角进入,它会在与墙壁成 30 度角时脱离,但在该墙壁法线的另一“侧”。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 以编程方式,这可能是最好的方法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    相关资源
    最近更新 更多