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)); // NaN1.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.78539816339744830.7853981633974483
PHP
Функция atan(float $num): float. Поведение идентично.
echo atan(1); // 0.785398163397450.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.78539816339744830.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); // 4545
Передача нечислового аргумента
Если передать строку, которая не преобразуется в число, результатом будет 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) функция осталась неизменной, как и в последующих версиях. Все современные браузеры и среды выполнения поддерживают ее стабильно.
Расширенные примеры применения
Вычисление угла наклона линии
Если известны координаты двух точек, угол наклона линии между ними можно найти через арктангенс разности координат.
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
Решение уравнений с тангенсом
Нахождение угла, при котором тангенс равен заданному значению.
let tanValue = 0.5;
let angleRad = Math.atan(tanValue);
console.log(`Угол, тангенс которого ${tanValue}, равен ${angleRad} радиан`);Угол, тангенс которого 0.5, равен 0.4636476090008061 радиан
Ограничение угла в диапазоне
Поскольку atan возвращает значение в пределах -π/2 до π/2, его можно использовать для нормализации угла в этом диапазоне.
function normalizeAngle(radians) {
// Приведение угла к диапазону (-π/2, π/2) с помощью тангенса и арктангенса
return Math.atan(Math.tan(radians));
}
console.log(normalizeAngle(3)); // 1.24904577239825441.2490457723982544
Использование с большими числами
При стремлении аргумента к бесконечности результат стремится к π/2.
console.log(Math.atan(1e10)); // 1.5707963266948965 (близко к π/2)
console.log(Math.PI/2); // 1.57079632679489661.5707963266948965 1.5707963267948966