2010-08-16 226 views
0

我正在試圖找出如何在我的程序中開發一種方法,該方法負責處理力並在與牆碰撞後更新矩形的位置。此刻,我只是讓它在牆內移動。我知道加速度方面的運動方程式,並且理解它們需要被整合到RK4方法中,然後可以計算各個位置x1,y1,theta1和x2,y2,theta2,並更新這些位置....我真的需要知道的是我需要其他方程嗎?以及如何將角位置應用於x,y位置?我不知道慣性/扭矩......或者使用(x1,y1)(x2,y2)位置與(x,y,w,h)相對的方式繪製矩形im ...,這裏是方程我知道我需要爲矩形的(X1,Y1)的RK4方法:矩形物理和碰撞

VX1' =( - K VX1)/米

VY1' =( - 毫克 - K VY1)/米

ω」 = - Kω/ I

X1' = VX1

Y1' = VY1

θ」 =ω

K =阻尼常數,I =轉動慣量,ω-=角速度

任何幫助,將不勝感激,因爲這已被竊聽我一會兒....感謝

+2

我沒有一個有用的答案給你,但我會建議將問題標題更改爲更通用。你所問的與C#或GDI +無關,這兩者我都知道。如果你使標題和標籤更多的幾何/物理相關,你可能會吸引更多的人來幫助你。 – Josh 2010-08-16 14:40:31

+0

也許你應該把它發佈到mathoverflow.net – thelost 2010-08-16 14:42:40

+0

@thelost - 絕對不是mathoverflow - 這是對postgrad的研究。 math.stackexchange.com可能會更好。 – 2010-08-16 14:49:11

回答

3

如果您只想完成作業,那麼請考慮使用現成且經過調試的物理引擎。我強烈推薦FarseerPhysics,它是免費且開源的。

如果你有興趣在計算物理然後http://math.stackexchange.com可能更合適。

如果你有興趣在實施物理然後你最好的選擇是環顧各種教程,因爲它是一個相當大和複雜的話題。或者在這裏問,但只有當你有一個特定的問題。也許GameDev是一個很好的起點。

如果你自己去實現這個目標的路線,看看這個tutorial on collision detection來了解你自己的想法。

順便說一句,你不要爲此使用RK4集成 - 這只是RK4在準確性和複雜性之間取得了良好的平衡。簡單的集成(x += V * dt風格)可以提供足夠可接受的結果,並且比RK4的工作量少很多。