xVel = velocity * Math.cos(angle);
yVel = velocity * Math.sin(angle);
這是我用來將單個初始速度轉換爲x和y速度,使用用戶輸入的角度。偶爾xVel
將是負面的。我想知道是否使用絕對值Math
函數會很好,或者它會在數學上歪曲我的結果。創建一個非常簡單的大炮模擬器。偶爾會得到負x速度
這是我的想法爲:在Java中
xVel = velocity * Math.abs(Math.cos(angle));
編程順便說一句,儘管這並沒有真正在這種情況下,無所謂。
編輯:由於缺乏一些重要的信息,我會添加一些修訂。
偶爾我會輸入一個在正象限(即15°)內的角度值,但仍然會得到負xVel。
此外,該程序假設角度正在從x軸以逆時針方向向上計數。
如果你得到你需要告訴我們一個否定的答案爲這_Input values_多數民衆贊成發生。 – Alnitak
你是否將角度轉換爲弧度? 'Math.cos'需要以弧度表示的角度。 'radians = Math.PI *(以度數表示的角度)/ 180'。 – JohnPS
在我自己面前犯了同樣的錯誤,我的錢就是對JohnPS的解釋。你應該只使用Math.toDegrees()! – vaughandroid