JavaScript - Math.atan2() - przykład metody z dokumentacją
Funkcja Math.atan2()
zwraca kąt wyrażony radianach w zakresie -Math.PI / 2
do +Math.PI / 2
między dodatnią osią x i promieniem od punktu (0, 0) do (x, y).
// ONLINE-RUNNER:browser;
// y x kąt w radianach
console.log( Math.atan2( 2, 4) ); // 0.4636476090008061 <- ~26.6 stopni
console.log( Math.atan2( 4, -2) ); // 2.0344439357957027 <- ~116.6 stopni
console.log( Math.atan2(-2, -4) ); // -2.6779450445889870 <- ~-153.4 stopni
console.log( Math.atan2(-4, 2) ); // -1.1071487177940904 <- ~-63.4 stopni
Metoda atan2()
została zwizualizowana na poniższym obrazku:
1. Dokumentacja
Składnia | Math.atan2(y, x) |
Parametry | y , x - liczby całkowite lub zmiennoprzecinkowe, które są współrzędnymi punktu. |
Wynik |
Wartość liczbowa kąta między dwiema liniami Gdzie:
Jeżeli punkt Jeżeli punkt
|
Opis |
|
2. Praca ze stopniami
// ONLINE-RUNNER:browser;
function calculateAngle(y, x) {
var angle = Math.atan2(y, x);
return (180 / Math.PI) * angle; // konwersja radianów na stopnie
}
// Przykładowe użycie:
console.log( calculateAngle( 2, 4) ); // 26.56505117707799 stopni
console.log( calculateAngle( 4, -2) ); // 116.56505117707799 stopni
console.log( calculateAngle(-2, -4) ); // -153.43494882292200 stopni
console.log( calculateAngle(-4, 2) ); // -63.43494882292201 stopni
3. Przeliczanie na kąty w stopniach zgodne z ruchem wskazówek zegara
W tej sekcji pokazano, jak przekonwertować dowolne kąty na kąty zgodne z ruchem wskazówek zegara (od 0 do 360 stopni).
// ONLINE-RUNNER:browser;
function calculateAngle(y, x) {
var angle = Math.atan2(y, x);
if (angle < 0.0) {
angle += 2.0 * Math.PI;
}
return (180 / Math.PI) * angle; // konwersja radianów na stopnie
}
// Przykładowe użycie:
console.log( calculateAngle( 2, 4) ); // 26.56505117707799 stopni
console.log( calculateAngle( 4, -2) ); // 116.56505117707799 stopni
console.log( calculateAngle(-2, -4) ); // 206.56505117707800 stopni
console.log( calculateAngle(-4, 2) ); // 296.56505117707800 stopni
4. Przeliczanie na kąty w stopniach przeciwnie do ruchu wskazówek zegara
W tej sekcji pokazano, jak przekonwertować kąty na kąty przeciwne do ruchu wskazówek zegara (od -360 do 0 stopni).
// ONLINE-RUNNER:browser;
function calculateAngle(y, x) {
var angle = Math.atan2(y, x);
if (angle > 0.0) {
angle -= 2.0 * Math.PI;
}
return (180 / Math.PI) * angle; // konwersja radianów na stopnie
}
// Przykładowe użycie:
console.log( calculateAngle( 2, 4) ); // -333.434948822922 stopni
console.log( calculateAngle( 4, -2) ); // -243.434948822922 stopni
console.log( calculateAngle(-2, -4) ); // -153.434948822922 stopni
console.log( calculateAngle(-4, 2) ); // -63.4349488229220 stopni