我正在嘗試使用速度和角度來計算大炮射擊的距離。我正在使用效用測試來測試結果。公式範圍應該像v^2 * sin2a又名速度平方* sin2alpha。據我所知,sin2a應該是2 * sina * cosa,但我可能是錯的。使用c#控制檯應用程序中的實用程序測試計算大炮射擊的距離
無論如何,無論我做什麼,我得到錯誤的結果,因爲它似乎並沒有計算sin。
下面的代碼
Cannon.cs
public int CalculateDistance(int angle, int velocity)
{
int distance = 0;
double radian_angle = (Math.PI/180) * angle;
distance_of_shot = (Math.Pow(velocity, 2)) * (2 * Math.Sin(radian_angle) * Math.Cos(radian_angle));
distance = (int)distance_of_shot;
return distance;
}
CannonAttackTest.cs
[TestMethod]
public void Calculations()
{
Canon new_canon = new Canon();
var data = new_canon.CalculateDistance(45, 450);
Assert.AreEqual(20682, data);
}
結果是假設爲20682,但我得到202500,這是確切地說,有450個方面......這些指向罪沒有被計算。
任何幫助表示讚賞!
謝謝!
這有點兒有道理肯定後。但我仍然得到20663而不是20682? – aiden87
@fox好吧,除以9.81,更準確的g值。在那裏,功課完成;) – Quantic
不能相信我忘了由重力分開。謝啦 :) – aiden87