【发布时间】:2011-06-15 12:44:48
【问题描述】:
我在这里阅读了几十个关于 SO(不仅是)关于打砖块碰撞检测的问题,即移动圆与固定矩形的碰撞,但所有这些问题都询问如何检测碰撞或如何检测碰撞的哪一侧矩形球击中。我的问题有点不同 - 它涉及当球击中矩形的角度时新速度方向的计算。
为简单起见,让我们假设Vx >= 0 和Vy <= 0,也就是说,球是从左上右下的,并且假设我知道它会击中矩形的下侧。绿色箭头表示球的大致方向,蓝点表示包含球击中矩形下边的直线上的第一个点。如果该点严格位于矩形的下侧,那么一切都是微不足道的——只需将Vy 更改为-Vy。但是,当该点位于下侧之外时,这意味着球将接触的矩形的第一个点将是其左下角,在这种情况下,我不认为将 Vy 更改为 @987654327 @ 是正确的。我认为新的速度角必须取决于蓝点到角落的距离。此外,我认为不仅Vy,Vx 也必须改变(可能保留 V 向量的长度)。
那么,我们如何计算新的 Vx 和 Vy 当我们击中一个角度时?如果您知道任何可以解决这个问题的好链接,我会很高兴知道它们。另请注意,我对这个的绝对物理模型更感兴趣,而不是易于编码的优化近似值。您可以假设不涉及轮换。提前非常感谢您
【问题讨论】:
标签: geometry collision-detection physics