Tan: примеры (PHP)

Функция tan в PHP: вычисление тангенса угла
Раздел: Математические функции
tan(float num): float

Функция tan() в PHP вычисляет тангенс угла. Эта математическая операция применяется в тригонометрии, компьютерной графике, физическом моделировании и других областях, где требуются расчеты с углами.

Аргументы функции

Функция принимает один обязательный аргумент:

  • $num (тип float) — угол в радианах, тангенс которого необходимо вычислить.

Возвращаемое значение всегда имеет тип float. Результатом является тангенс переданного угла.

Простые примеры вычисления тангенса
Тангенс стандартных углов
<?php
echo tan(0); // 0
?>
0
<?php
echo tan(M_PI_4); // tan(π/4)
?>
1
Отрицательный угол
<?php
echo tan(-M_PI_4); // tan(-π/4)
?>
-1
Похожие тригонометрические функции в PHP

В стандартной библиотеке PHP присутствуют другие тригонометрические функции:

  • sin($num) — вычисляет синус угла.
  • cos($num) — вычисляет косинус угла.
  • atan($num) — вычисляет арктангенс (обратная функция к тангенсу).
  • atan2($y, $x) — вычисляет арктангенс с учетом квадранта, что удобно для преобразования декартовых координат в полярные.

Выбор функции зависит от конкретной математической задачи. Для решения прямоугольных треугольников часто используют набор sin, cos, tan. Функция atan2 предпочтительнее atan при работе с координатами.

Аналоги функции в других языках

Tan в Python

В модуле math существует функция tan(x). Как и в PHP, аргумент передается в радианах.

import math
print(math.tan(math.pi / 4))
1.0

Tan в Javascript

Глобальный объект Math содержит метод tan(x).

console.log(Math.tan(Math.PI / 4));
0.9999999999999999

Tan в MySQL

В SQL-запросах можно использовать функцию TAN().

SELECT TAN(PI() / 4);
1.0

Отличия от PHP в основном синтаксические, математическая суть идентична. В JavaScript, из-за особенностей чисел с плавающей точкой, результат может иметь незначительную погрешность.

Распространенные ошибки
Передача угла в градусах

Самая частая ошибка — передача значения в градусах, тогда как функция ожидает радианы.

<?php
// Неправильно: попытка вычислить tan(45 градусов)
$result = tan(45);
echo $result;
?>
1.6197751905439

Правильно сначала преобразовать градусы в радианы с помощью функции deg2rad().

<?php
$angle_degrees = 45;
$angle_radians = deg2rad($angle_degrees);
$result = tan($angle_radians); // tan(π/4)
echo $result;
?>
1
Деление на ноль при ручном вычислении

Попытка вычислить тангенс как sin/cos без проверки косинуса на ноль может привести к предупреждению.

<?php
$angle = M_PI_2; // 90 градусов в радианах
$tan = sin($angle) / cos($angle); // cos(π/2) = 0
?>
Warning: Division by zero
История изменений

В PHP 8 значительных изменений в поведении функции tan() не произошло. Как и большинство математических функций, она осталась стабильной. В ранних версиях, начиная с PHP 4, функция всегда возвращала тип float. В PHP 8 повышена общая стабильность и производительность математических расширений, но сигнатура и базовый алгоритм функции не менялись.

Расширенные примеры применения
Расчет высоты объекта по углу и расстоянию
Пример php
<?php
// Измерение высоты здания: расстояние до основания = 50м, угол подъема = 30°
$distance = 50;
$angle_deg = 30;
$height = $distance * tan(deg2rad($angle_deg));
echo round($height, 2);
?>
28.87
Создание простого графика тангенса
Пример php
<?php
// Вывод значений tan от -π/2 до π/2 с шагом
for ($x = -M_PI_2 + 0.1; $x < M_PI_2; $x += 0.2) {
    // Избегаем точек, близких к асимптотам
    $y = tan($x);
    echo sprintf("x = %+.2f : y = %+.2f\n", $x, $y);
}
?>
x = -1.47 : y = -9.95
x = -1.27 : y = -3.19
x = -1.07 : y = -1.82
... и т.д.
Проверка тригонометрического тождества
Пример php
<?php
$angle = 0.5;
$left = tan($angle);
$right = sin($angle) / cos($angle);
// Сравнение с учетом погрешности вычислений с плавающей точкой
var_dump(abs($left - $right) < 0.000001);
?>
bool(true)
Обработка особых случаев через исключения
Пример php
<?php
function safe_tan($radians) {
    // Проверяем, не является ли аргумент π/2 + π*k (где k - целое)
    // cos(angle) == 0 -> тангенс не определен
    if (abs(cos($radians)) < 0.000001) {
        throw new Exception('Тангенс не определен для данного угла.');
    }
    return tan($radians);
}
try {
    echo safe_tan(M_PI_2);
} catch (Exception $e) {
    echo $e->getMessage();
}
?>
Тангенс не определен для данного угла.

PHP tan function comments

En
Tan Returns the tangent of an angle