关于2D多边形碰撞响应的一些问题

时间:2011-11-09 06:09:22

标签: math response collision-detection physics collision

嘿,所以在阅读this article之后我已经留下了一些我希望在这里解决的问题。

我的理解是,任何多维碰撞响应的目标都是将它转换为1D碰撞,将物体置于某种共享轴上。我从文章中推断出响应2个多边形之间的2d碰撞的步骤是

  1. 首先找到每个物体碰撞点的速度矢量
  2. 根据每个碰撞点的速度找出相对速度(参见问题1
  3. 沿着“力传递线”(参见问题2 )确定该速度的多少因素  (这是碰撞最重要的速度)
  4. 弹性因素
  5. 质量因素
  6. 根据2-4
  7. 找出脉冲/新的线速度
  8. 最后通过计算出每个物体的CM“旋转”多少脉冲来确定新的角速度(这是决定角加速度的因素)
  9. 所有这些步骤基本上都是根据每个速度转换为新的1D坐标系后,确定每个点在另一个点上的速度,对吗?

    问题1:文章说相对速度是为了找到和表达碰撞点相互接近的速度,但对我来说,似乎只是<登记/> CM 1 - &gt; CM 2,其幅度基于每个点的速度。我不理解甚至在计算中包括CM的原因,因为它是点碰撞,而不是CM。此外,我喜欢可视化的东西,所以相对速度如何在几何上进行转换,以及它如何朝着获得一维碰撞问题的目标发展。

    问题2:文章指出,碰撞过程中唯一的力是垂直于受影响边缘的方向,但这是如何决定的?另外,当每个身体最终在 2个不同的中反弹时,他们怎么只能 强制朝一个方向 / strong>指示。

1 个答案:

答案 0 :(得分:2)

“所有这些步骤基本上都是根据每个速度转换为新的1D坐标系后,确定每个点在另一个点上的速度,对吧?”

这似乎是对第1步和第2步的非常好的描述。

“问题1:文章说相对速度是为了找到和表达碰撞点相互接近的速度,但对我而言,似乎只是CM 1的矢量 - &gt ; CM 2,其幅度基于每个点的速度。“

不,想象两个CM几乎静止,但是一个矩形旋转并撞击另一个。碰撞点的相对速度几乎垂直于CM1和CM2之间的位移矢量。

“......相对速度如何在几何上平移?”

在撞击之前放大碰撞现场。如果你站在一个身体的碰撞点上,你会看到另一个点上的碰撞点以一定的速度接近你(在你的框架中,你站在那里的那个)。

“......它如何解决一维碰撞问题的目标?”

在碰撞现场, 是一维碰撞问题。

“问题2:文章指出碰撞过程中唯一的力是垂直于受影响的边缘的方向,但这是如何决定的?”

为了使问题更容易解决,看起来像是一个让表面变得滑溜的任意决定。

“当每个身体最终在 2个不同的方向中反弹时,怎么能只有一个方向的力量 。” / I>

每个身体都在一个方向受到力量。它以某个方向离开,以一定的角速度旋转。我无法解析剩下的问题。