Pymunk PinJoint 相对于主体锁定旋转

Pymunk PinJoint with locked rotation with respect to bodies

我正在尝试创建一个简单的化学模拟器,其中包含原子(圆圈)和它们之间的键。我遇到的问题是,当原子 'bond' 使用销关节时,圆圈独立于关节旋转。我试过使用多个销接头,但分子最终会振荡,有时会剧烈振荡,因为它们会自行拉伸和校正。如果有任何想法,我将不胜感激。

除了 PinJoint 之外,您是否尝试过使用 RotaryLimitJoint?它限制了物体之间的相对旋转:http://www.pymunk.org/en/latest/pymunk.constraints.html#pymunk.constraints.RotaryLimitJoint

我的解决方法是创建两个 pinjoints。一根来自每个物体的中心,一根非常短 (0.1),位于两个物体的接触点。这导致两个物体(原子)彼此非常接近,但它们作为单个物体旋转。我可以为两个关节设置 collide_bodies = False,这样可以减少处理。当受约束的物体与第三个物体碰撞时会有一点运动,但总体来说解决方案效果很好。