根据角度和最大范围计算距离

问题描述

我正在编写 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 倍。