嘿,看完这篇文章后,我有几个问题希望在这里解决。
我的理解是,任何多维碰撞响应的目标都是将其转换为一维碰撞,将物体放在某种共享轴上。我从文章中推断,响应2个多边形之间的2d碰撞的步骤是
- 首先找到每个物体碰撞点的速度矢量
- 根据每个碰撞点的速度求相对速度(见问题1)
- 考虑有多少速度沿着"力传递线"(见问题2)
(这是唯一影响碰撞的速度) - 弹性因子
- 质量因子
- 基于2-4求脉冲/新线速度
- 最后通过计算有多少冲量是"围绕"每个物体的CM(这是决定角加速度的因素)来计算新的角速度
所有这些步骤基本上都是计算出每个点到达另一个点的速度在每个速度转换成新的一维坐标系后的速度,对吧?
问题1:文章说相对速度是为了找到和表达碰撞点彼此接近的速度,但对我来说似乎只是
的向量CM 1 -> CM 2,大小基于每个点的速度。我不明白在计算中包括CMs背后的原因,因为这是点碰撞,而不是CMs。此外,我喜欢将事物可视化,所以相对速度如何以几何形式转换,以及它如何朝着获得一维碰撞问题的目标工作。
问题2:文章指出碰撞过程中唯一的力是垂直于撞击边缘的方向,但这是如何确定的?而且,当每个物体最终应该在两个不同的方向反弹时,它们怎么可能只在一个方向受力
"所有这些步骤基本上都是在将每个速度转换为新的一维坐标系后计算每个点到达另一个点的速度,对吗?"
这似乎是对步骤1和2的一个很好的描述。
"问题1:文章说相对速度是为了找到和表达碰撞点彼此接近的速度,但对我来说,它似乎只是CM 1 -> CM 2的矢量,其大小基于每个点的速度。"
不,想象两个cm几乎是静止的,但一个矩形旋转并撞击另一个。碰撞点的相对速度将几乎垂直于CM1和CM2之间的位移矢量。
<我>"……相对速度是如何几何转换的?" 我>
放大碰撞现场,就在撞击前。如果你站在一个物体的碰撞点上,你会看到另一个物体的碰撞点以一定的速度向你靠近(在你的坐标系中,就是你站着不动的那个坐标系)。
<我>"……它是如何实现一维碰撞问题的呢?" 我>
在碰撞现场,其中为一维碰撞问题。
"问题2:文章指出碰撞过程中唯一的力是垂直于撞击边缘的方向,但这是如何确定的?"
为了使问题更容易解决,把表面弄得很滑,这看起来像是一个武断的决定。
"当每个物体最终应该在两个不同的方向反弹时,为什么只有一个方向的力呢?"
每个物体都受到一个方向的力。它以一定的方向出发,以一定的角速度旋转。我无法解析问题的其余部分。