Math.atan2()

Функція Math.atan2() повертає арктангенс частки поданих чисел.

Синтаксис

Math.atan2(y, x)

Аргументи

y
Перше число.
x
Друге число.

Результат

Арктангенс частки даних аргументів

Опис

Метод Math.atan2() повертає числове значення з-поміж -π та π, що являє собою кут Тета нахилу вектора (x, y). Тобто це кут між додатнім напрямком осі OX і вектором (x, y), виміряний проти годинникової стрілки. Як і інші методи Mathatan2() повертає значення кута у радіанах.

Зауважте порядок розміщення аргументів функції: першою йде координата y, а другою — x.

 

A simple diagram showing the angle returned by atan2(y, x)

На відміну від Math.atan(), що працює із часткою координат x та yMath.atan2() приймає їх на вхід окремо.

Оскільки atan2() - це статичний метод об'єкту Math, він завжди використовується як Math.atan2(), а не як метод створеного об'єкту Math  (Math не є конструктором).

Приклади

Застосування Math.atan2()

Math.atan2(90, 15); // 1.4056476493802699
Math.atan2(15, 90); // 0.16514867741462683

Math.atan2(±0, -0);               // ±PI.
Math.atan2(±0, +0);               // ±0.
Math.atan2(±0, -x);               // ±PI for x > 0.
Math.atan2(±0, x);                // ±0 for x > 0.
Math.atan2(-y, ±0);               // -PI/2 for y > 0.
Math.atan2(y, ±0);                // PI/2 for y > 0.
Math.atan2(±y, -Infinity);        // ±PI for finite y > 0.
Math.atan2(±y, +Infinity);        // ±0 for finite y > 0.
Math.atan2(±Infinity, x);         // ±PI/2 for finite x.
Math.atan2(±Infinity, -Infinity); // ±3*PI/4.
Math.atan2(±Infinity, +Infinity); // ±PI/4.

Специфікації

Специфікація Статус документу Примітка
ECMAScript 1st Edition (ECMA-262) Standard Первинне визначення. Реалізовано у JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.atan2' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.atan2' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.atan2' in that specification.
Draft  

Підтримка у браузерах

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
atan2Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support YesSafari Full support YesWebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0nodejs Full support Yes

Legend

Full support  
Full support

Дивіться також