Tan: примеры (JAVASCRIPT)
tan(number): numberОсновы функции Math.tan() в JavaScript
Функция Math.tan() является частью стандартного объекта Math в JavaScript. Она возвращает тангенс числа, где число представляет угол в радианах. Эта математическая операция часто используется в вычислениях, связанных с геометрией, физикой, компьютерной графикой и обработкой сигналов.
Функция принимает только один обязательный аргумент:
x- число, выражающее угол в радианах, для которого вычисляется тангенс. Если аргумент не является числом, он автоматически преобразуется в число.
Возвращаемое значение - числовое значение тангенса угла. Для углов, где тангенс стремится к бесконечности (например, π/2 + πk), возвращается очень большое число, близкое к бесконечности, или может быть возвращено значение Infinity или -Infinity.
Пример вызова: Math.tan(Math.PI / 4) возвращает примерно 1, так как тангенс π/4 равен 1.
Простые примеры использования Math.tan()
Пример вычисления тангенса для основных углов:
console.log(Math.tan(0));
console.log(Math.tan(Math.PI / 4));
console.log(Math.tan(Math.PI));0
0.9999999999999999
-1.2246467991473532e-16
Пример с преобразованием строкового аргумента:
console.log(Math.tan('0.7854'));0.9999999999999999
Пример с очень большим углом, где тангенс стремится к бесконечности:
console.log(Math.tan(Math.PI / 2));16331239353195370
Похожие математические функции в JavaScript
В объекте Math существует несколько функций, связанных с тригонометрией:
Math.sin()- возвращает синус угла в радианах.Math.cos()- возвращает косинус угла в радианах.Math.atan()- возвращает арктангенс числа в радианах.Math.atan2(y, x)- возвращает арктангенс от частного своих аргументов, учитывая знаки для определения квадранта.
Функцию Math.tan() применяют, когда требуется именно тангенс угла. Для обратной задачи - нахождения угла по значению тангенса - используют Math.atan() или Math.atan2(). Функции синуса и косинуса чаще используются вместе, например, при работе с координатами на окружности.
Аналоги функции в других языках программирования
Вычисление тангенса поддерживается в большинстве языков программирования. Синтаксис обычно похож, но могут быть различия в точности или поведении для граничных значений.
Пример на Python:
import math
print(math.tan(math.pi / 4))0.9999999999999999
Пример на PHP:
echo tan(M_PI / 4);1
Пример на C:
#include <math.h>
#include <stdio.h>
int main() {
printf('%f\n', tan(M_PI / 4));
return 0;
}1.000000
Пример на MySQL:
SELECT TAN(PI() / 4);0.9999999999999999
Основное отличие JavaScript - отсутствие отдельной константы для π, используется Math.PI. В PHP и C есть встроенные константы M_PI.
Распространенные ошибки при работе с Math.tan()
Частой ошибкой является передача угла в градусах вместо радиан. Функция ожидает радианы, поэтому градусы нужно преобразовать.
// Неправильно
console.log(Math.tan(45));
// Правильно
console.log(Math.tan(45 * Math.PI / 180));1.6197751905438615
0.9999999999999999
Еще одна проблема - точность вычислений для углов, где тангенс не определен математически. JavaScript возвращает очень большое число, но это может привести к неожиданным результатам в вычислениях.
let result = Math.tan(Math.PI / 2);
console.log(result);
console.log(1 / result);16331239353195370
6.123233995736766e-17
Также стоит помнить о преобразовании типов. Если передать аргумент, который не преобразуется в число, результатом будет NaN.
console.log(Math.tan('текст'));NaN
Изменения в работе функции
Функция Math.tan() остается неизменной с момента стандартизации ECMAScript 1 (1997 год). Ее поведение и спецификация стабильны во всех версиях JavaScript. Нет документально подтвержденных изменений в алгоритме вычисления или возвращаемых значениях в последних версиях ECMAScript.
Единственное развитие касается общего контекста - улучшение производительности математических операций в движках JavaScript, но это не меняет API или результаты функции.
Расширенные примеры применения Math.tan()
Использование в геометрических расчетах, например, вычисление высоты объекта по расстоянию и углу:
function calculateHeight(distance, angleRad) {
return distance * Math.tan(angleRad);
}
console.log(calculateHeight(10, Math.PI / 6));5.773502691896258
Создание простой анимации движения по касательной:
let angle = 0;
function animate() {
let tangentValue = Math.tan(angle);
// Использование tangentValue для позиционирования элемента
angle += 0.1;
if (angle < 2 * Math.PI) {
requestAnimationFrame(animate);
}
}
animate();Использование в обработке сигналов для фильтрации:
function tangentFilter(signal, coefficient) {
return signal.map(value => Math.tan(value * coefficient));
}
console.log(tangentFilter([0, 0.5, 1], 0.1));[0, 0.05004170837605279, 0.10033467208545055]
Проверка периодичности функции тангенса с периодом π:
let x = Math.PI / 3;
console.log(Math.tan(x));
console.log(Math.tan(x + Math.PI));1.7320508075688767
1.732050807568878
Вычисление тангенса через синус и косинус для демонстрации математической связи:
function tanViaSinCos(angle) {
return Math.sin(angle) / Math.cos(angle);
}
console.log(tanViaSinCos(Math.PI / 4));0.9999999999999999