Math.cos() вычисляет косинус угла.
Главное, что нужно запомнить сразу: метод принимает угол не в градусах, а в радианах.
Синтаксис
Math.cos(x)
x - угол в радианах.
Что делает Math.cos()
Метод возвращает косинус переданного угла.
console.log(Math.cos(0)); // 1
console.log(Math.cos(Math.PI)); // -1
console.log(Math.cos(Math.PI / 3)); // 0.5000000000000001
Это значит:
Math.cos(0)равно1Math.cos(Math.PI)равно-1Math.cos(Math.PI / 3)примерно равно0.5
Что возвращает Math.cos()
Math.cos() возвращает число типа number.
const result = Math.cos(Math.PI / 4);
console.log(result); // 0.7071067811865476
console.log(typeof result); // "number"
Результат всегда находится в диапазоне от -1 до 1.
Метод работает в радианах
Это самый важный момент при работе с Math.cos().
console.log(Math.cos(Math.PI)); // -1
Если передать в метод 60, JavaScript воспримет это как 60 радиан, а не 60 градусов.
console.log(Math.cos(60)); // -0.9524129804151563
Поэтому градусы нужно переводить в радианы.
Как перевести градусы в радианы
Формула такая:
радианы = градусы * Math.PI / 180
Пример:
const angle = 60;
const radians = angle * Math.PI / 180;
console.log(Math.cos(radians)); // 0.5000000000000001
Ещё пример:
const angle = 180;
const radians = angle * Math.PI / 180;
console.log(Math.cos(radians)); // -1
Популярные значения
Несколько значений удобно знать наизусть.
console.log(Math.cos(0)); // 1
console.log(Math.cos(Math.PI / 6)); // 0.8660254037844387
console.log(Math.cos(Math.PI / 4)); // 0.7071067811865476
console.log(Math.cos(Math.PI / 3)); // 0.5000000000000001
console.log(Math.cos(Math.PI)); // -1
Это примерно соответствует:
cos(0)=1cos(30°)=0.866...cos(45°)=0.707...cos(60°)=0.5cos(180°)=-1
Положительные и отрицательные углы
Math.cos() умеет работать и с отрицательными углами.
console.log(Math.cos(Math.PI / 3)); // 0.5000000000000001
console.log(Math.cos(-Math.PI / 3)); // 0.5000000000000001
Для косинуса это нормально: у положительного и отрицательного угла результат может совпадать.
Почему Math.cos(Math.PI / 2) не равно ровно 0
Иногда кажется, что здесь должен быть точный ноль, но в JavaScript используются числа с плавающей точкой.
console.log(Math.cos(Math.PI / 2)); // 6.123233995736766e-17
Это очень маленькое число, практически равное нулю.
Но математически идея остаётся той же: результат почти 0.
Math.cos() и Math.sin()
Math.cos() и Math.sin() часто используют вместе, но это разные функции.
console.log(Math.cos(Math.PI / 2)); // 6.123233995736766e-17
console.log(Math.sin(Math.PI / 2)); // 1
Math.cos()вычисляет косинусMath.sin()вычисляет синус
Если вы работаете с углами, анимацией, геометрией или координатами, эти методы обычно идут вместе.
Без аргумента
Если вызвать Math.cos() без аргумента, результатом будет NaN.
console.log(Math.cos()); // NaN
Так происходит потому, что метод попытается обработать undefined как число.
Неявное приведение типов
Math.cos() сначала пытается привести аргумент к числу.
console.log(Math.cos("1")); // 0.5403023058681398
console.log(Math.cos(null)); // 1
console.log(Math.cos(true)); // 0.5403023058681398
console.log(Math.cos(undefined)); // NaN
На практике лучше передавать в метод уже готовое число.
NaN и Infinity
Для специальных значений результат будет таким:
console.log(Math.cos(NaN)); // NaN
console.log(Math.cos(Infinity)); // NaN
console.log(Math.cos(-Infinity)); // NaN
Это полезно помнить:
NaNдаётNaNInfinityдаётNaN-InfinityдаётNaN
Число не меняется
Math.cos() не изменяет исходное значение. Он только возвращает новый результат.
const angle = Math.PI;
const result = Math.cos(angle);
console.log(angle); // 3.141592653589793
console.log(result); // -1
Когда это полезно
Math.cos() часто используют, когда:
- нужно работать с углами
- вы рассчитываете координату точки по оси
x - делаете анимации и вращение объектов
- пишете игры, графику или визуализации
Пример с координатой по оси x:
const angle = 60 * Math.PI / 180;
const radius = 100;
const x = radius * Math.cos(angle);
console.log(x); // 50.000000000000014
Частые ошибки
Передавать градусы вместо радиан
console.log(Math.cos(60)); // -0.9524129804151563
Такой результат получается потому, что 60 здесь считается радианами.
Правильно так:
console.log(Math.cos(60 * Math.PI / 180)); // 0.5000000000000001
Ожидать, что Math.cos(Math.PI / 2) даст ровно 0
console.log(Math.cos(Math.PI / 2)); // 6.123233995736766e-17
Это очень маленькая погрешность вычислений, а не проблема в коде.
Забывать, что результат всегда между -1 и 1
console.log(Math.cos(1)); // 0.5403023058681398
Косинус не может вернуть значение больше 1 или меньше -1.
Быстрая памятка
Math.cos(x)вычисляет косинус угла- аргумент должен быть в радианах
- метод возвращает
number - результат всегда находится в диапазоне от
-1до1 Math.cos(0)равно1Math.cos(Math.PI)равно-1Math.cos(Math.PI / 2)может дать очень маленькое число вместо точного0- градусы нужно переводить в радианы через
angle * Math.PI / 180
Коротко
Math.cos() - это стандартный способ вычислить косинус угла в JavaScript. Главное, что нужно запомнить: метод работает в радианах, а не в градусах, а из-за особенностей чисел с плавающей точкой значения вроде Math.cos(Math.PI / 2) могут быть очень близки к нулю, но не равны ему ровно.