编辑:我有一个使用 Math.atan2()
的 Angular ,然后我想从中添加或减去值。然而,这种加法和减法有时意味着 Angular 大于 π 或小于 -π,我正在寻找一种方法使这些外 Angular 之一回到正确的范围。
我尝试使用以下代码在 JavaScript 中查找 mod 2π 的值:
foo % Math.PI * 2;
但是,它总是只返回 foo,即使我尝试这样做:
var bar = Math.PI * 2;
foo % bar;
谁能向我解释一下为什么这不起作用?
最佳答案
您没有进行作业:
foo = foo % (Math.PI * 2);
或者:
foo %= Math.PI * 2;
编辑:
为了解释您更新的问题,您有一个值 foo,它可以是任何 Angular ,但是您希望 foo 在 [-pi,pi] 范围内。您需要以编程方式执行此操作:
foo %= 2 * Math.PI; // Now in the range [-2pi,2pi]
if (Math.abs(foo) > Math.PI) {
foo -= 2 * Math.PI * Math.sign(foo);
}
关于javascript - 你能在 JavaScript 中找到 Mod 2Pi 的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588274/