Languages
[Edit]
PL

JavaScript - Math.atan2() - przykład metody z dokumentacją

3 points
Created by:
Root-ssh
177650

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:

wizualizacja funkcji atan2(y, x) - JavaScript Math Object.
wizualizacja funkcji atan2(y, x) - JavaScript Math Object.

1. Dokumentacja

SkładniaMath.atan2(y, x)
Parametryy, x - liczby całkowite lub zmiennoprzecinkowe, które są współrzędnymi punktu.
Wynik

Wartość liczbowa kąta między dwiema liniami OP i OX wyrażona radianach w zakresie -Math.PI / 2 do +Math.PI / 2.

Gdzie:

  • O=(0, 0) - punkt przecięcia osi układu współrzędnych,
  • P=(x, y) - punkt na wykresie,
  • OX - dodatnia część osi x.

Jeżeli punkt P znajduje się w pierwszej (I) lub drugiej (II) ćwiardce, kąt jest mierzony w kierunku przeciwnym z ruchem wskazówek zegara.

Jeżeli punkt P znajduje się w trzeciej (III) lub czwartej (IV) ćwiardce, kąt jest mierzony w kierunku zgodnym z ruchem wskazówek zegara.

Uwaga: strzałki kątów pokazują w jakim kierynku i od którego miejsca mierzyć kąty w różnych ćwiartkach.

Opis

atan2 to metoda statyczna, która przyjmuje dwa parametry i zwraca przybliżenie funkcji arcus tangens (y / x), biorąc pod uwagę ćwiatkę położenia punktu (P = (x, y)).


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

Referencje

  1. atan2 - Wikipedia
  2. Funkcje cyklometryczne - Wikipedia
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

JavaScript - obiekt Math (PL)

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join