W3docs

tan()

Функция tan() в PHP возвращает тангенс угла. Угол должен быть задан в радианах.

Функция tan() в PHP возвращает тангенс угла. Угол должен быть задан в радианах, а не в градусах — это наиболее распространённая причина неверных результатов, и ниже мы рассмотрим, как выполнить преобразование.

В этой главе объясняются синтаксис, параметры и возвращаемое значение tan(), приводятся исполняемые примеры, а также указываются подводные камни (радианы против градусов, значения, при которых тангенс стремится к бесконечности).

Что делает функция tan()

В прямоугольном треугольнике тангенс угла — это отношение стороны напротив угла к стороне прилежащей к нему. Эквивалентно: tan(x) = sin(x) / cos(x).

tan() принимает один угол в радианах и возвращает это отношение как значение типа float. Полный круг равен радиан (360°), поэтому π/4 радиан соответствует 45°, тангенс которого равен 1.

Синтаксис

tan(float $num): float
ПараметрТипОписание
$numfloatУгол, в радианах.

Возвращаемое значение: float — тангенс $num.

Базовый пример

php— editable, runs on the server

Здесь мы передаём pi() / 4 радиан (45°). Тангенс 45° точно равен 1, однако из-за ошибок округления с плавающей точкой выводится нечто вроде 0.99999999999999.

Работа с градусами

Большинство людей мыслят в градусах, но tan() понимает только радианы. Сначала выполните преобразование с помощью deg2rad() или умножьте на pi() / 180:

<?php
$degrees = 60;

// Convert degrees to radians before calling tan()
$radians = deg2rad($degrees);

echo tan($radians);   // ~1.7320508075689 (√3)
?>

Передача 60 напрямую в tan(60) вычислит тангенс 60 радиан — совершенно другое, бессмысленное значение для данного случая.

Подводный камень: где тангенс «уходит в бесконечность»

Тангенс равен sin(x) / cos(x), поэтому он не определён там, где cos(x) равен нулю — при 90°, 270° и т. д. (π/2 + nπ). В математике это бесконечность; при вычислениях с плавающей точкой cos(pi()/2) является крошечным ненулевым числом, поэтому tan() возвращает очень большое конечное значение вместо INF:

<?php
echo tan(pi() / 2);   // ~1.6331239353195E+16 (very large, not exactly INF)
?>

Если вам нужна точная проверка «не определено», проверьте, близко ли cos($x) к нулю, прежде чем делить.

Связанные функции

  • tanh() — гиперболический тангенс.
  • atan() — обратный тангенс (арктангенс), возвращает угол в радианах.
  • sin() и cos() — составляющие тангенса.
  • deg2rad() и rad2deg() — преобразование между градусами и радианами.

Заключение

tan() возвращает тангенс угла, выраженного в радианах. Запомните два ключевых момента: сначала преобразуйте градусы в радианы, и учитывайте, что тангенс не определён при 90° + кратных 180°, где PHP возвращает очень большое значение вместо бесконечности.

Практика

Практика
Что делает функция tan() в PHP?
Что делает функция tan() в PHP?
Was this page helpful?