【发布时间】:2017-10-20 08:18:39
【问题描述】:
我是 pymunk 的新手,我想实现一个像这样的 n 体模拟(二维):https://www.youtube.com/watch?v=otIGNTFJwpU&feature=youtu.be
我已经知道如何使用 pygame 创建空间、形状和渲染。我的问题:有没有办法在 pymunk 中的形状之间添加引力?
感谢您的帮助。
【问题讨论】:
-
也许你可以展示你已经尝试过的东西,或者描述你所做的研究?你如何确定这不能由 pymunk 完成?
-
好的,我已经做的是用身体创造空间。现在我需要在每对物体之间施加引力。我的第一个猜测是使用
pymunk.constraint,它描述了两个物体如何相互作用。然而,这个类只包含["PinJoint", "SlideJoint", "PivotJoint", "GrooveJoint", "DampedSpring", "DampedRotarySpring", "RotaryLimitJoint", "RatchetJoint", "GearJoint", "SimpleMotor"],并且调整这些来重现引力似乎并不明显。 -
请您编辑您的问题以包含您已有的代码(使用 4 个空格格式化为代码)。您可能想要使用的方法是在系统中的主体上使用双 for 循环。然后用the inverse square law算出大小,在物体中心用apply_force_at_local_point。
-
虽然它是用 C 语言编写的,但有一个名为“Planet”的 Chipmunk(Pymunk 包装)演示可能会对您有所帮助。您可以在 Chipmunk github 页面 here 找到它。
标签: python pygame physics-engine pymunk