【发布时间】:2011-04-18 07:51:43
【问题描述】:
我正在编写一个 2D 刚体模拟器。被模拟的对象是凸多边形。我的问题是如何确定碰撞的“点”,这样当我施加响应力时,我也可以计算扭矩。
在二维中,窄相碰撞检测的流行方法似乎是分离轴定理。然而,虽然这给了你“他们在碰撞吗?”以及“多少?”,它不会为您提供一个参考点(我知道),在该参考点上应用响应力(并因此计算扭矩)*。
另一种方法(这也让我更感兴趣,因为它是 3D 中使用的,这将是合乎逻辑的下一步)是计算两个多边形的 Minkowski 差异,并确定它们在 (0, 0) 包含在生成的多边形中。但是,您如何使用它来确定施加响应力的相对点?我的假设是,由于这种差异的每个面都有效地对应于其中一个多边形的面,因此分离距离是从 (0,0) 到 MD 的最短距离,并将其应用于多边形上的相应面.
作为奖励,如何在 3D 中做到这一点?
*在我写这篇文章时,我刚刚意识到,在使用 SAT 时,我可以跟踪哪些点是重叠的,并在这些点的“平均值”处施加力。但是我必须决定在几个非分离轴中的哪一个来执行这个小技巧......
【问题讨论】:
-
力沿垂直于表面施加..并且大小取决于沿表面垂直方向的速度的 x 分量。
-
扭矩 = 半径 x 力。在这种情况下,半径是相对于发生接触的每个物体的点。我的问题涉及如何确定这个相对点。
-
半径的一端永远是质心……而另一点是碰撞的接触点。
-
不开玩笑。 :) 我的问题是,你们如何确定联系点?
-
说真的,不知道,所以我投票并标记为收藏。还是你打算如何让你反对??我想知道。
标签: physics simulation