问题描述
我正在编写 javascript 代码,我需要根据角度、初始高度、速度、最大范围找出距离。
示例:如果一个物体从地面(其中高度 = 0)以 45 度角和 速度 3000 射出.物体在距离抛掷点距离 1500 米处坠落。
如果物体从相同的高度和速度以 60 度角射出,那么从射点到地面落点的距离是多少。
初始高度 => h = 0
角度 => a = 45 度
速度 => v = 3000
最大范围 => m = 1500 米
var h = 0;
var a = 45;
var v = 3000;
var m = 1500;
var d = null; //need to calculate this
// Range calculation formula is: d = V₀² * sin(2 * α) / g
d = v * v * Math.sin(2 * a) / 9.8;
我从上面的公式中得到范围,但这不是基于给定的最大范围。
解决方法
函数 Math.sin
期望角度以弧度给出。给定一个以度为单位的角度 α
,您可以通过 α * (π/180)
计算以弧度为单位的角度。因此,您的计算需要按如下方式执行。
d = v * v * Math.sin(2 * a * Math.PI / 180) / 9.8;
请注意,您的最大范围实际上是 ≈920000 米。您的初始速度为 10800 公里/小时(或 6710 英里/小时),是商用飞机的 10 倍。