Atan: примеры (JAVASCRIPT)

Функция atan в JavaScript: вычисление арктангенса
Раздел: Математика, Тригонометрия
atan(number): number

Основы функции atan в JavaScript

Метод Math.atan() возвращает арктангенс числа в радианах, который является углом между осью X и линией, проведенной из начала координат в точку (x, y). Это обратная функция к Math.tan().

Использование функции связано с задачами тригонометрии, компьютерной графики, физического моделирования и расчета углов по известному тангенсу.

Аргументы

Функция принимает один обязательный аргумент:

  • x — число, представляющее тангенс угла. Может быть любым числовым значением, включая отрицательные числа, ноль, положительные числа, а также Infinity и -Infinity.

Возвращаемое значение

Math.atan() всегда возвращает число в радианах в диапазоне от -π/2 до π/2 включительно. Для нечисловых аргументов (NaN) возвращается NaN.

Базовые примеры использования atan

Стандартный вызов с числовым аргументом:

console.log(Math.atan(0)); // 0
console.log(Math.atan(1)); // 0.7853981633974483 (π/4)
console.log(Math.atan(-1)); // -0.7853981633974483 (-π/4)
0
0.7853981633974483
-0.7853981633974483

Использование с пределами:

console.log(Math.atan(Infinity)); // 1.5707963267948966 (π/2)
console.log(Math.atan(-Infinity)); // -1.5707963267948966 (-π/2)
console.log(Math.atan(NaN)); // NaN
1.5707963267948966
-1.5707963267948966
NaN

Похожие функции в JavaScript

Math.atan2(y, x)

Возвращает угол между положительной осью X и точкой (x, y). Учитывает знаки обоих аргументов для определения правильного квадранта. Диапазон результата: от -π до π. Предпочтительнее использовать для преобразования декартовых координат в полярные.

Math.asin() и Math.acos()

Возвращают арксинус и арккосинус соответственно. Math.asin() принимает значения от -1 до 1, возвращает угол от -π/2 до π/2. Math.acos() также принимает -1 до 1, но возвращает угол от 0 до π. Используются при известных значениях синуса или косинуса.

Аналоги в других языках программирования

Python

Функция math.atan(x) из модуля math работает аналогично. Также есть math.atan2(y, x).

import math
print(math.atan(1)) # 0.7853981633974483
0.7853981633974483

PHP

Функция atan(float $num): float. Поведение идентично.

echo atan(1); // 0.78539816339745
0.78539816339745

C/C++

Функция double atan(double x) из заголовка math.h. Возвращает значение в радианах. В C++ также доступна в пространстве имен std.

#include 
#include 
int main() {
    printf("%f", atan(1)); // 0.785398
    return 0;
}
0.785398

MySQL

Функция ATAN(x) возвращает арктангенс. Также есть двухаргументная форма ATAN2(y, x).

SELECT ATAN(1); -- 0.7853981633974483
0.7853981633974483

Типичные ошибки

Ожидание результата в градусах

Функция возвращает радианы. Для получения градусов требуется преобразование.

// Ошибка:
let angle = Math.atan(1); // ожидание 45°
console.log(angle); // но получаем радианы: 0.785...
0.7853981633974483
// Правильно:
let radians = Math.atan(1);
let degrees = radians * 180 / Math.PI;
console.log(degrees); // 45
45

Передача нечислового аргумента

Если передать строку, которая не преобразуется в число, результатом будет NaN.

console.log(Math.atan("текст")); // NaN
console.log(Math.atan("1")); // 0.785... (строка преобразуется)
NaN
0.7853981633974483

История изменений

Функция Math.atan() присутствует в JavaScript с первых версий ECMAScript 1 (1997 год). Спецификация не претерпела существенных изменений в поведении. В стандарте ECMAScript 2015 (ES6) функция осталась неизменной, как и в последующих версиях. Все современные браузеры и среды выполнения поддерживают ее стабильно.

Расширенные примеры применения

Вычисление угла наклона линии

Если известны координаты двух точек, угол наклона линии между ними можно найти через арктангенс разности координат.

Пример javascript
function lineAngle(x1, y1, x2, y2) {
    let deltaY = y2 - y1;
    let deltaX = x2 - x1;
    return Math.atan(deltaY / deltaX);
}
console.log(lineAngle(0, 0, 1, 1)); // угол 45° в радианах
0.7853981633974483

Решение уравнений с тангенсом

Нахождение угла, при котором тангенс равен заданному значению.

Пример javascript
let tanValue = 0.5;
let angleRad = Math.atan(tanValue);
console.log(`Угол, тангенс которого ${tanValue}, равен ${angleRad} радиан`);
Угол, тангенс которого 0.5, равен 0.4636476090008061 радиан

Ограничение угла в диапазоне

Поскольку atan возвращает значение в пределах -π/2 до π/2, его можно использовать для нормализации угла в этом диапазоне.

Пример javascript
function normalizeAngle(radians) {
    // Приведение угла к диапазону (-π/2, π/2) с помощью тангенса и арктангенса
    return Math.atan(Math.tan(radians));
}
console.log(normalizeAngle(3)); // 1.2490457723982544
1.2490457723982544

Использование с большими числами

При стремлении аргумента к бесконечности результат стремится к π/2.

Пример javascript
console.log(Math.atan(1e10)); // 1.5707963266948965 (близко к π/2)
console.log(Math.PI/2); // 1.5707963267948966
1.5707963266948965
1.5707963267948966

JS atan function comments

En
Atan Returns the arctangent of a number (in radians)