线端点的球线段碰撞

时间:2015-04-25 19:56:43

标签: python math vector line collision

所以我有一个程序,其中一个受重力影响的球从用户用鼠标点击创建的线条反弹。这些线通常是倾斜的。我的碰撞弹跳工作完全除了球大约这样做的情况:   - > O ------

我的代码通过找到线的法线向量来工作,使得球的入射速度vec和线的法线的标量积为负(这意味着向量具有相反的方向)。 然后我将速度分解为平行和垂直于法线的术语, 并且反向并行组件的方向。

在上述边缘情况下,球基本沿着线移动。我怎么能解释这个?有什么建议吗?>

1 个答案:

答案 0 :(得分:0)

可能的解决方案:

  1. 您可以构建一个 2D矩形(就像您想要/需要它一样),而不是使用单个1D' - 由...组成4个单独的'行。即您可以与矩形对象的4个面中的任何一个进行碰撞。那会有用吗?
  2. 做某种角落碰撞 - 如果球击中了一条线的开始或结束,让它适当地反弹。我认为这样做的方式如下:
    一世。如果角落在球的半径范围内,则发生碰撞 II。在角落和球的中心之间定义一条线 III。沿着这条线反转球的速度分量。