我有两个球,它们应始终位于恒定距离之间。只要它们的距离保持不变,它们就可以以所有自由度移动。想象一下,他们通过一根看不见的杆神奇地连接起来。在物理模拟过程中,各种力被施加在这些球体上以移动它们。
我正在为球体使用两个子弹 SphereShapes 。我可以在这两个球体之间使用什么样的约束(关节)来模拟它们的恒定距离和连接?
在我看来,我需要引入一个虚拟形状(圆柱体?胶囊?)来连接这两个球体,并在其两端各自引入球形约束(球窝关节)以连接到球体
有没有更好的方法来实现此设置?我使用什么样的约束?
答案 0 :(得分:1)
我会从Point2PointConstraint(球和套接字)创建自己的约束。
98行是需要改变的。实质上,您应该创建一种新的约束,以了解两个对象之间的距离。 depth 变量不是试图将 pivotAInW 和 pivotBInW 匹配在世界空间( depth == 0 )中当连接 pivotAInW 和 pivotBInW 的向量长度等于距离时,该值应为零。当两个枢轴位于空间中的同一点时,您可能希望保护您的代码免受特殊情况的影响,并强制施加脉冲的方向,例如关于x轴。