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-172. Ожидание точных математических результатов. Из-за двоичного представления чисел с плавающей запятой возможны микроскопические погрешности.
console.log(Math.cos(Math.PI / 2)); // Ожидается 06.123233995736766e-173. Передача нечисловых строк, которые не преобразуются в число. Это возвращает 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 оптимизируют ее вызов для повышения производительности.
Расширенные примеры применения
Создание простой гармонической функции (колебания):
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Вращение точки на плоскости:
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]Генерация значений для построения графика косинусоиды:
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):
// Пример вычисления значения для свойства '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Проверка ортогональности векторов (скалярное произведение):
// Угол между векторами 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.0PHP (cos): Синтаксис и поведение идентичны.
echo cos(0); // 1
echo cos(pi()); // -11
-1C (cos из math.h): Требует указания типа double и угла в радианах.
#include
#include
int main() {
printf("%f\n", cos(0.0)); // 1.000000
return 0;
} 1.000000MySQL (COS): Функция работает с числовыми столбцами или литералами.
SELECT COS(0); -- 1
SELECT COS(PI()); -- -11
-1Основное отличие заключается в синтаксисе вызова, но математическая суть и использование радиан остаются общими для всех языков.