3

我有两个球体,它们应该始终彼此保持恒定的距离。只要它们的距离保持不变,它们就可以以各种自由度移动。想象它们被一根看不见的杆神奇地连接起来。在物理模拟期间对这些球体施加各种力以移动它们。

我为球体使用了两个 Bullet SphereShapes。我可以在这两个球体之间使用什么样的约束(关节)来模拟它们的恒定距离和连接?

在我看来,我需要引入一个虚拟形状(圆柱体?胶囊?)来连接这两个球体,并在其两端的每一端引入一个球形约束(球窝接头)以连接到球体。

有没有更好的方法来实现这个设置?我使用什么样的约束?

4

1 回答 1

1

我会从Point2PointConstraint(球和插座)创建我自己的约束。

第 98 行是需要更改的。本质上,您应该创建一种新的约束,该约束知道您想要两个对象之间的距离。当连接pivotAInWpivotBInW的向量的长度等于distance时,深度变量应该为零,而不是尝试在世界空间中将 pivotAInWpivotBInW匹配在一起( depth == 0)。您可能希望保护您的代码免受特殊情况的影响,即两个枢轴都位于空间中的同一点并强制施加脉冲的方向,例如关于 x 轴。

于 2013-03-03T20:48:22.487 回答