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 присутствуют другие тригонометрические функции:
- 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
// Измерение высоты здания: расстояние до основания = 50м, угол подъема = 30°
$distance = 50;
$angle_deg = 30;
$height = $distance * tan(deg2rad($angle_deg));
echo round($height, 2);
?>28.87
<?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
$angle = 0.5;
$left = tan($angle);
$right = sin($angle) / cos($angle);
// Сравнение с учетом погрешности вычислений с плавающей точкой
var_dump(abs($left - $right) < 0.000001);
?>bool(true)
<?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();
}
?>Тангенс не определен для данного угла.