编程语言
首页 > 编程语言> > javascript-我的Webworkers似乎计算不正确

javascript-我的Webworkers似乎计算不正确

作者:互联网

我正在编写一个JavaScript应用程序,以在球体表面上生成随机点.我在Wolfram上找到了这个公式来得到phi和theta(http://mathworld.wolfram.com/SpherePointPicking.html#eqn2). Phi是我遇到phi = cos ^(-1)(2v-1)的问题,其中v是(0,1)的随机变量.以下是我编写的用于计算phi的JavaScript.但是,在执行时,它经常返回NaN.谁能告诉我是否误解了该公式?我唯一能想到的是Math.random()生成(0,1],而0可能引发错误.但是在运行多个测试时,我不认为Math.random()每次都会生成0.执行该行.

var phi = Math.acos(2 *(Math.random())*-1);

解决方法:

这是因为大于1的反余弦(Math.acos()函数)返回NaN,而Math.random()* 2有时返回大于1的数字.

怎么修?

我看到数学cos ^(-1)(2v-1)

v = someValue;

Math.acos(2 * v) - 1;

为此,您可能想要

phi = Math.acos(2 * Math.random() - 1);

作为您的Javascript代码.

结论:

要修复,您需要做的就是更换

phi = Math.acos(2 * Math.random()*-1);

phi = Math.acos(2 * Math.random()-1);

(删除* -1)

标签:calculus,random,computer-science,geometry,javascript
来源: https://codeday.me/bug/20191122/2058786.html