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

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

В JavaScript функция Math.cos() является частью глобального объекта Math и возвращает косинус числа. Она используется для выполнения математических вычислений, связанных с тригонометрией, волновыми процессами, графикой и анимацией.

Основные сведения о Math.cos

Функция вычисляет косинус угла. Угол задается в радианах. Если требуется использовать градусы, их необходимо предварительно преобразовать.

Синтаксис: Math.cos(x)

Аргументы:

  • x (Number): Число, представляющее угол в радианах, для которого требуется вычислить косинус. Если аргумент не является числом, он будет неявно преобразован в число.

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

  • Число от -1 до 1, представляющее косинус заданного угла. Если аргумент не может быть преобразован в число, возвращается NaN.

Простые примеры использования

Пример с углом в радианах:

console.log(Math.cos(0)); // Угол 0 радиан
console.log(Math.cos(Math.PI)); // Угол π радиан
console.log(Math.cos(Math.PI / 3)); // Угол π/3 радиан
1
-1
0.5000000000000001

Пример с преобразованием градусов в радианы:

function cosDeg(degrees) {
    let radians = degrees * (Math.PI / 180);
    return Math.cos(radians);
}
console.log(cosDeg(60)); // Косинус 60 градусов
console.log(cosDeg(90)); // Косинус 90 градусов
0.5000000000000001
6.123233995736766e-17 (практически 0)

Функция работает с любыми числовыми аргументами, включая отрицательные значения и нечисловые строки:

console.log(Math.cos(-Math.PI));
console.log(Math.cos('0')); // Строка преобразуется в число 0
console.log(Math.cos('abc')); // Нечисловая строка
-1
1
NaN

Другие тригонометрические функции в JavaScript

  • Math.sin(x): Вычисляет синус угла x (в радианах). Используется совместно с косинусом для описания колебаний.
  • Math.tan(x): Вычисляет тангенс угла x (в радианах). Может возвращать очень большие значения или Infinity при приближении аргумента к π/2.
  • Math.acos(x): Вычисляет арккосинус числа x (возвращает угол в радианах). Это обратная функция к Math.cos(), но её аргумент должен быть в диапазоне от -1 до 1.
  • Math.cos() предпочтительнее для прямого вычисления косинуса. Для работы с градусами удобно создать вспомогательную функцию. Math.acos() применяется, когда известно значение косинуса, но требуется найти угол.

Распространенные ошибки

1. Использование градусов без преобразования в радианы. Это приводит к неверным результатам.

// Неправильно
let wrongCos = Math.cos(90); // 90 радиан, а не градусов
console.log(wrongCos);
// Правильно
let correctCos = Math.cos(90 * Math.PI / 180); // Преобразование в радианы
console.log(correctCos);
-0.4480736161291702
6.123233995736766e-17

2. Ожидание точных математических результатов. Из-за двоичного представления чисел с плавающей запятой возможны микроскопические погрешности.

console.log(Math.cos(Math.PI / 2)); // Ожидается 0
6.123233995736766e-17

3. Передача нечисловых строк, которые не преобразуются в число. Это возвращает NaN, что может нарушить последующие вычисления.

console.log(Math.cos('90 градусов')); // NaN
// Решение: явная проверка или преобразование
let angle = Number('90');
if(!isNaN(angle)) {
    console.log(Math.cos(angle * Math.PI / 180));
}
NaN
6.123233995736766e-17

История изменений функции

Функция Math.cos() существует с самых первых версий JavaScript (ECMAScript 1) и с тех пор не претерпела изменений в своем базовом поведении, синтаксисе или алгоритме вычислений. Она является стабильной и полностью соответствует стандарту IEEE 754 для операций с плавающей запятой. Все современные движки JavaScript оптимизируют ее вызов для повышения производительности.

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

Создание простой гармонической функции (колебания):

Пример javascript
function harmonic(t, amplitude, frequency, phase) {
    return amplitude * Math.cos(2 * Math.PI * frequency * t + phase);
}
// Значение колебания в момент времени t=1, амплитуда=5, частота=1 Гц, фаза=0
console.log(harmonic(1, 5, 1, 0));
2.499999999999999

Вращение точки на плоскости:

Пример javascript
function rotatePoint(x, y, angleRad) {
    let newX = x * Math.cos(angleRad) - y * Math.sin(angleRad);
    let newY = x * Math.sin(angleRad) + y * Math.cos(angleRad);
    return [newX, newY];
}
let point = rotatePoint(10, 0, Math.PI / 2); // Поворот на 90 градусов
console.log(point);
[6.123233995736766e-17, 10]

Генерация значений для построения графика косинусоиды:

Пример javascript
let values = [];
for(let i = 0; i <= 10; i += 0.5) {
    values.push(Math.cos(i).toFixed(4));
}
console.log(values.join(', '));
1.0000, 0.8776, 0.5403, 0.0707, -0.4161, -0.8011, -0.9900, -0.9365, -0.6536, -0.2108, 0.2837, 0.7087, 0.9602, 0.9766, 0.7539, 0.3466, -0.1455, -0.6020, -0.9111, -0.9972, -0.8391

Использование в CSS-анимации для плавного движения (через инлайновые стили или JavaScript):

Пример javascript
// Пример вычисления значения для свойства 'left'
let time = Date.now() / 1000; // Текущее время в секундах
let amplitude = 100; // Пиксели
let frequency = 0.5;
let leftPosition = amplitude * Math.cos(2 * Math.PI * frequency * time);
console.log('CSS left value could be: ' + leftPosition.toFixed(2) + 'px');
CSS left value could be: 80.90px

Проверка ортогональности векторов (скалярное произведение):

Пример javascript
// Угол между векторами 90 градусов (π/2 рад), косинус равен 0
let angle = Math.PI / 2;
console.log('cos(90°) =', Math.cos(angle));
// Практически 0, значит векторы ортогональны
cos(90°) = 6.123233995736766e-17

Функции косинуса в других языках

Python (math.cos): Аналогична JavaScript, угол также задается в радианах.

import math
print(math.cos(0))
print(math.cos(math.pi))
1.0
-1.0

PHP (cos): Синтаксис и поведение идентичны.

echo cos(0); // 1
echo cos(pi()); // -1
1
-1

C (cos из math.h): Требует указания типа double и угла в радианах.

#include 
#include 
int main() {
    printf("%f\n", cos(0.0)); // 1.000000
    return 0;
}
1.000000

MySQL (COS): Функция работает с числовыми столбцами или литералами.

SELECT COS(0); -- 1
SELECT COS(PI()); -- -1
1
-1

Основное отличие заключается в синтаксисе вызова, но математическая суть и использование радиан остаются общими для всех языков.

JS cos function comments

En
Cos Returns the cosine of a number (in radians)