2014-01-06 51 views
-1

我想在SDL 1.2中編程一個雙體問題所以在那個程序中我會有兩個正確的身體,我的問題是我需要爲每個身體準備什麼數據?該程序只是兩個在特定軌道上旋轉的物體。 我會爲每個Body創建一個類,並將數據存儲在那裏。 我相信我需要以下數據 mass1,mass2(每個物體的質量) speed1,speed2(每個物體的初始速度) angle1,angle2(物體在模擬開始時的行進方向) 距離(物體彼此之間的距離)雙體運動所需的變量

我不確定我是否正確,是否需要任何其他對象的數據,或者是我說的一些日期有點偏離?

+0

這是一個開放式的,而不是一個很好的問題。但是,問問自己如何使用筆和紙製定身體的位置。 – Skizz

+0

可能有很多不同的方法來做到這一點,但我會從每個物體開始,每個物體都有一個質量,一個矢量指示位置,一個速度矢量(包含速度和方向)。您可以存儲諸如角度等的東西,但是,由於可以從速度矢量簡單地導出相同的信息,所以它可能是多餘的 - 儘管在某些情況下它可能會用作「緩存值」,所以您不需要必須反覆重新計算... – twalberg

回答

1

由於你的問題是在3空間,你將需要6個位置參數爲每個身體和質量。你如何編碼這些參數取決於你。如果要以直角座標給出座標,請存儲位置的x,yz組件以及速度的組成部分x,yz。如果你想使用極座標,你將需要一個大小,方位角和仰角。到目前爲止您提到的配置具有質量,速度,速度方位角和速度提升。您還需要包括初始位置。我建議整個切換到笛卡爾座標,因爲整合將在不同的方向上看起來更均勻。

+0

我還建議保持整個系統的能量,動量和角動量。它們是保守的數量。存儲它們意味着這組變量是過度的,但你需要解決舍入誤差的累積。存儲重心(除了動量)以及進行與重心相關的所有計算也可能是有用的。 – MSalters

+0

@ MSalters。這是一些很好的建議。 –