我正在尝试使用速度和角度来计算加农炮射击的距离。我正在使用效用测试来测试结果。范围的公式应该像v ^ 2 * sin2a aka速度平方* sin2alpha一样。据我所知,sin2a应该是2 * sina * cosa,但我可能是错的。
无论如何,无论我做什么,我都会得到错误的结果,因为它似乎并没有计算出罪恶。
这是代码
佳能
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 ...这表明未计算出sin。
任何帮助表示赞赏!
谢谢!
检查单位,因为速度为m / s,并且“射击距离”为m ^ 2 / s ^ 2,所以需要除以“ g”的值。
distance_of_shot = (Math.Pow(velocity, 2)) * (2 * Math.Sin(radian_angle) * Math.Cos(radian_angle))/9.81;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句