对象之间的跨度较小

时间:2011-07-09 13:43:45

标签: box2d physics-engine farseer

存在这样的情况:对象“A”落在静态对象“B”上,但是当“A”落在“B”上时,在“A”和“B”之间存在跨度。如何解决问题?

2 个答案:

答案 0 :(得分:1)

Box2d使用迭代求解器,模拟质量取决于您在模拟中使用的数值。在box2d手册中,建议将动态体的尺寸保持在[0.1,10]范围内。精度0.002(来自您的评论)非常好。

因此有两种方法可以解决您的问题。更改您使用的测量系统或增加位置和/或速度迭代。第一种方法要好得多,因为它不会增加计算时间。

答案 1 :(得分:0)

Box2d具有b2_linearSlop参数(在PhysX中为AKA'Pkin')

这是对几何尺寸的一点补充,以提高物理模拟的稳定性。也许它会导致你描述的人工制品。

尝试在box2d的源代码中查找以下字符串(我从原始box2d的flash端口获取了它,但是对于其他平台它应该是相同的):

/**
* A small length used as a collision and constraint tolerance. Usually it is
* chosen to be numerically significant, but visually insignificant.
*/
static public const b2_linearSlop:Number = 0.005;   // 0.5 cm