2011-11-05 76 views
2

我需要模擬平面中2點之間運動的幫助。考慮兩點P1:(x,y1)P2:(x2,y2)。我計算P1和P2之間的距離,比如說D,我選擇一個隨機速度,比如V。接下來,我計算從P1到P2所需的時間,如T。最後,我計算P1和P2之間的直線方程爲y = mx + b。在2D中模擬運動

例如,讓T = 10秒。對於前9秒,我想在直線上產生每秒點數,直到我在第10秒達到點P2。你能否幫助我這麼做?

回答

4

最好的方法是使用參數方程

x = x1 + t*(x2 - x1) 
y = y1 + t*(y2 - y1) 

其中t是「時間」參數從0到1(0.5手段例如中途)去。

如果您也喜歡你的動作是「軟」(從零速度開始,然後加速,然後減速並停在到達點),你可以用這個修改公式

w = 3*t*t - 2*t*t*t 
x = x1 + w*(x2 - x1) 
y = y1 + w*(y2 - y1) 

以下是所述w曲線的曲線圖相比,線性分佈t 11分(T = 0.0,0.1,... 0.9,1.0):

enter image description here

+0

感謝您的響應。我只想確認我瞭解參數t。在上面的例子中,P1的t = 0,P2的t = 1。要在P1和P2之間生成9個座標,t將爲0.1,0.2,...,0.9。是對的嗎? – NewToAndroid

+0

@NewToAndroid:是的......兩個公式之間的區別在於,第一種情況下點將等距分佈,而第二種情況下點將使用加速 - 減速曲線分佈。 – 6502