2011-11-23 78 views
0

我有一艘太空飛船,而且我想計算轉彎180度需要多長時間。這是我當前的代碼轉船:轉180度的時間

.msngFacingDegrees = .msngFacingDegrees + .ROTATION_RATE * TV.TimeElapsed 

我現在.ROTATION_RATE0.15,但它會改變。

我曾嘗試:

Math.Ceiling(.ROTATION_RATE * TV.TimeElapsed/180) 

但總是得到的1答案。請幫忙。

+1

您使用的是什麼數據類型? –

+0

試試這個:'Math.Ceiling(.ROTATION_RATE * TV.TimeElapsed/180.0)'......注意把'0'加到180的硬編碼值上。180單獨被看作是一個整數,它將你的十進制計算偏移到int ... –

+0

爲什麼在計算中包含TV.TimeElapsed?這不是你想要解決的未知問題嗎? – Jason

回答

0

要解釋爲什麼你會得到1所有的時間:

Math.Ceiling只是舍入到下一個整數,所以你和內容必須始終< 1.

重新排列和給出TV.TimeElapsed = 180 * (1/.ROTATION_Rate)。對於ROTATION_Rate爲0.15,我們知道TV.TimeElapsed在您的整體函數返回> 1之前需要達到1200.

是否有可能總是查看經過時間小於此閾值?

進一步建議你的總和應該更難 - 它沒有更多的上下文不完全清楚。

+0

即使我將代碼更改爲:Math.Ceiling(.ROTATION_RATE/180.0),我仍然只得到1.是否有更好的方法來計算旋轉180度需要多長時間? –

+0

你有翻轉 - 喬恩建議Math.Ceiling(180.0/RotationRate)。這是簡單的代數。 – Jason

+0

好的,很酷。得到它的工作。我如何接受答案的人? –