Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算给定速度和距离的弹丸射程角_Javascript_Calculus - Fatal编程技术网

Javascript 计算给定速度和距离的弹丸射程角

Javascript 计算给定速度和距离的弹丸射程角,javascript,calculus,Javascript,Calculus,我一直在尝试用Javascript实现投射运动,我一直在计算角度(从中导出x和y速度) 我本以为这样的事情会发生,因为它是从这里来的。 我得到的值不是NaN就是一个很小的数字 提供更多的上下文;射弹必须从A点到B点(在我的代码中距离是d),A点和B点的高度相同。稍后,我想将距离和角度随机化一点,但我假设一旦这个角度问题得到解决,这将不会成为一个问题 编辑: 举一个更好的例子: var v = 100; var d = 100; var g = 1; // I've made this posi

我一直在尝试用Javascript实现投射运动,我一直在计算角度(从中导出x和y速度)

我本以为这样的事情会发生,因为它是从这里来的。
我得到的值不是NaN就是一个很小的数字

提供更多的上下文;射弹必须从A点到B点(在我的代码中距离是
d
),A点和B点的高度相同。稍后,我想将距离和角度随机化一点,但我假设一旦这个角度问题得到解决,这将不会成为一个问题

编辑:
举一个更好的例子:

var v = 100;
var d = 100;
var g = 1;  // I've made this positive now
var angle = 0.5 * Math.asin((g*d)/(v*v));

这说明角度现在是0.005,我不太擅长这个物理问题,但我会试试

  • Math.asin()的参数应介于-1和1之间。否则返回NaN
  • 从你的例子中,你运行
    Math.asin(-10/1)
    也许速度有它能覆盖的最大距离。例如,无论角度如何,1米/秒的距离都不会达到500米
  • 在你的链接中有一个公式来计算距离给定速度和角度的最大距离。用它来确认你的变量是相关的
  • 角度以-1到1之间的值表示,单位为cos、sin、tan。NaN(或范围外的值)意味着没有角度可以覆盖距离,这是有道理的

希望它能对你链接的维基百科页面有所帮助。根据您的输入,计算结果为1。因此,10的距离是不可能的


注意这一点的另一种方式是sin的范围是(-1,1)。因此,超出此范围的任何数字的asin都是未定义的
(g*d)/(v*v)
是10,所以
数学。因为在
返回NaN

谢谢,我将尝试在代码中加入一些要点,以便更好地了解发生了什么
var v = 100;
var d = 100;
var g = 1;  // I've made this positive now
var angle = 0.5 * Math.asin((g*d)/(v*v));