Top community members
All Wiki Articles Create Wiki Article

Have you ever heard about encyclopedia for code?

What about: Wiki for Code project?

* because I've tried to share code and my solutions on different services and it was removed or I was unwelcomed
   - maybe it wasn't good place, but this one is.

if you think you have solution that can help someone, you are welcome to share this solution - Click here

JavaScript - Math.atan2() - przyk┼éad metody z dokumentacj─ů

0 contributions
3 points

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
0 contributions

Suggested wiki articles:

Suggested findings

Let's do the work and have some fun
  • Dirask is online IT community for professionals and hobbyist to share their knowledge and help each other in extraordinary easy way. ÔŁĄ ­čĺ╗ ­čÖé
  • We welcome everyone,
    no matter what the experience,
    no matter how basic the question is,
    we will help you. ­čĹŹ Ôťö ­čŽä
Read more