2012-12-07 20 views
2

我正在使用pymunk將力施加到其直徑末端的圓形體上。這些力是不同的大小,並且都沒有x分量(相對於身體,也就是說,它們與直徑垂直)。我希望這些力一起在一定程度上旋轉身體,但相反,他們只是加在一起創建一個沒有X分量和Y分量的力矢量(所以再次垂直於直徑),這只是一個組合這兩種力量的大小。施加力量在不同點無法在寶馬創造力矩

是否pymunk只是無法計算由身體上不同點施加的多個力的合成旋轉?既然這是我甚至使用物理引擎的唯一原因,如果真的如此,我會非常失望。我將不勝感激這個問題的任何幫助。先謝謝你。

回答

1

除非我誤解了這個問題,否則pymunk應該能夠計算輪換。檢查這個例子:

>>> b = Body(1,100) 
>>> c = Circle(b,10) 
>>> s.add(b,c) 
>>> b.apply_impulse((100,0), (0,10)) 
>>> b.apply_impulse((-50,0), (0,-10)) 
>>> s.step(.1) 
>>> b.angle 
-1.5 
>>> b.position 
Vec2d(5.0, 0.0) 
>>> s.step(.1) 
>>> b.angle 
-3.0 
>>> b.position 
Vec2d(10.0, 0.0) 
+0

但是,如果我用力(100,0)一個衝動而另一個用力(50,0),圓會同時移動和轉動嗎?看來在我的模擬中,情況並非如此,除非我的部隊應用出現問題。我是否需要將每個力量分解爲與其世界相關的x和y分量?我認爲我可以在圓的直徑的每一端施加每個力,並且隨着圓的轉動,力相對於身體繼續施加(我計算每個步驟的直徑的端部的位置)。 – desophos

+0

我改變了一點例子..但如果你沒有得到它的工作,那麼我建議你創建一個最小的例子,並粘貼在這裏 – viblo

+0

啊,這個例子完全說明了我的問題。您將不同的衝動應用到直徑的末端,但不是將身體推入一個圓圈,而是旋轉並沿着x軸移動。它不應該以圓形模式運動,沿x軸和y軸運動嗎? – desophos