你能在JavaScript中找到一些Mod 2Pi吗?

时间:2011-01-03 20:54:28

标签: javascript

编辑:我有一个使用Math.atan2()的角度,然后我想添加或减去值。然而,这种加法和减法有时意味着角度大于pi或小于-pi,我正在寻找一种方法来使这些外角之一回到正确的范围。

我正在尝试使用以下代码在JavaScipt中找到值mod 2pi:

foo % Math.PI * 2;

然而,它总是只返回foo,即使我尝试这个:

var bar = Math.PI * 2;
foo % bar;

有人可以向我解释为什么这不起作用吗?

DLiKS

2 个答案:

答案 0 :(得分:3)

你没有作出任务:

foo = foo % Math.PI * 2;

或者:

foo %= Math.PI * 2;

编辑:

为了解释您更新的问题,您有一个值foo,可能是任何角度,但是您希望foo在[-pi,pi]范围内。你需要以编程方式执行此操作:

foo %= (2 * Math.PI);  // Now in the range [0,2pi]

if(foo>pi) {
   foo -= 2*pi;  // If foo is between pi and 2pi, subtract 2pi to make negative.
}

答案 1 :(得分:-1)

类型。 Math.Pi是双倍的。任何(Int%Double)将返回Int侧。

尝试:

<script type="text/javascript">
 var bar = parseInt(Math.PI * 2 * 10000);
 document.write(bar / 10000 + "<br/>");
 var foo = 60000;
 foo %= bar;
 document.write(foo / 10000 + "<br />");
</script>