2017-12-02 139 views
1

我目前正在圍繞賽道移動不同的賽車。我使用改變物體運動速度的公式

Canvas move object in circle

ARCCOS列出的式(1-(d ⁄ R) ⁄ 2)以改變所述汽車的速度繞跑道的端部和它工作得很好。我不明白的是公式是如何派生的。我一直在努力從arcsin或arccos的二階導數中推導出它,但我無法脫離公式(所以我猜測我走錯路了)。無論如何,我不習慣使用我不明白的代碼,所以如果有人能爲我揭示一些代碼,我將不勝感激。

+0

你看到這個例子中,在這裏你可以用這些參數和值播放/ ..以獲得更好的理解: http://jsfiddle.net/m1erickson/Qnk5d/ – Lonely

+0

這純粹是一個數學問題,與編程無關;如果你不明白該鏈接文章中答案的推導,那麼你應該問[Math SE網站](https://math.stackexchange.com)。 – meowgoesthedog

+0

你怎麼使用這個公式?爲了什麼? – MBo

回答

1

如鏈接問題中詳細描述的,物體沿着一個圓的運動可以用單個角度來參數化,其以鬆散的術語描述了物體已經做了多少「轉動」。現在的問題是對於哪個角度theta目的是在從最初的(當前)位置的歐幾里得距離d

enter image description here

換言之,如果您修正模擬的時間步長delta,所述問題可以重申,應該如何調整(增加)角度,以便物體在時間間隔delta之間移位至距離d

law of cosines,得到:

d^2 = r^2 + r^2 - 2*r*r*cos(theta) = 2*r^2*(1 - cos(theta)) 

這樣:

cos(theta) = 1 - 1/2*(d/r)^2 

theta = arccos(1 - 1/2*(d/r)^2) 
+0

謝謝@ewcz,當我閱讀代碼時,我認爲距離在弧AC上,而不是和絃。感謝您的圖表和推導,它非常清楚。 – GameQuest