Můžete najít něco Mod 2Pi v JavaScriptu?

EDIT:Mám úhel z použití Math.atan2(), který pak chci přidat nebo odečíst hodnoty. Toto sčítání a odečítání však někdy znamená, že úhel je větší než pí nebo menší než -pi a já hledám způsob, jak vrátit jeden z těchto vnějších úhlů zpět do správného rozsahu.

Snažím se najít hodnotu mod 2pi v JavaScipt pomocí následujícího kódu:

foo % Math.PI * 2;

Vždy to však vrátí jen foo, i když zkusím toto:

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

Může mi někdo vysvětlit, proč to nefunguje?

DLiKS

Odpověď

Neděláte úkol:

foo = foo % Math.PI * 2;

Nebo:

foo %= Math.PI * 2;

EDIT:

Abych parafrázoval vaši aktualizovanou otázku, máte hodnotu foo, což může být jakýkoli úhel, jakkoli chcete, aby foo bylo v rozsahu [-pi,pi]. Musíte to udělat programově:

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

if (Math.abs(foo) > Math.PI) {
  foo -= 2 * Math.PI * Math.sign(foo);
}