javascript - 你能在 JavaScript 中找到 Mod 2Pi 的东西吗?

标签 javascript

编辑:我有一个使用 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/

相关文章:

javascript - 根据 jQuery 中的旋转播放音乐

javascript - jQuery 中延迟对象中的 resolved 和 rejected 是什么意思?

php - 文本搜索 - 突出显示搜索短语

javascript - Bootstrap 模式使用 post 发送请求

javascript - JSLint 字符串比较错误预期为 '===' 而不是看到 '=='

javascript - 检索最高的键值

javascript - 使用 split 在 javascript 中创建一个 2 级数组

javascript - jQuery .is (':visible' ) 不工作?

javascript - 如何将图像转换为缓冲区

javascript - 在 AngularJS 中使用 ngRepeat 减少 TH 标签