我应该怎样去在花栗鼠空间的某个物体上实现“自然”的磁铁呢? 背景是躺在空间中的简单尸体(想象棋盘)。 当其中一个数字被激活时,其他人应该开始向它移动。
目前,我正在向其他人物施加力量( cpBodyApplyForce
),向量计算为激活的数字。 然而这并不真正感觉到“自然”。 有没有已知的模仿磁铁的algorithm?
我做磁铁已经有一段时间了,但我相信你想要的方程是两极之间力量的天真模型 。
def force(a, b): magnitude = a.magnitude * b.magnitude separation_sq = distance_squared(a.position, b.position) return (permeability * magnitude) / (4 * pi * separation_sq)
为了达到你的目的,你可以在4 * pi的时候修正permeability
,只调整每个物体的大小来得到你想要的感觉,简化公式:
def force(a, b): magnitude = a.magnitude * b.magnitude separation_sq = distance_squared(a.position, b.position) return magnitude / separation_sq
重要的部分是力与物体之间的距离的平方成反比。