Главная chevron_right Функции chevron_right Тригонометрия chevron_right tan()

tan()

tan(rad) вычисляет тангенс угла в радианах и возвращает double. Если угол в градусах — умножьте на PI / 180.0 перед вызовом.

Полная статья

Описание

Функция tan(rad) вычисляет тангенс угла, переданного в радианах. Результат может принимать любое вещественное значение — от отрицательной до положительной бесконечности. Это математически закономерно: тангенс не ограничен по диапазону и уходит в бесконечность при приближении угла к π/2 + πn.

Если у вас угол в градусах, его нужно предварительно перевести в радианы. Для этого умножьте значение в градусах на PI / 180.0.

Синтаксис

Используйте следующую функцию для вычисления тангенса заданного угла в радианах:

tan(rad)

Параметры

Функция допускает следующий параметр:

rad: Угол в радианах. Разрешенные типы данных: float.

Возвращает

Функция возвращает тангенс угла. Тип данных: double.

Пример кода

float angle = (2.0 / 3.0) * PI;  // в радианах
double res = 0;

void setup() {
  Serial.begin(9600);

  res = tan(angle);

  Serial.print("The angle tangent is: ");
  Serial.println(res);
}

void loop() {
}

Где применяется

  • Навигация и робототехника — вычисление угла поворота или направления движения по известным проекциям.
  • Обработка сигналов датчиков — пересчёт угловых показаний IMU или энкодера в линейные величины.
  • Геометрические расчёты — определение высоты объекта по известному расстоянию и углу наклона (например, с ультразвуковым дальномером и акселерометром).
  • Генерация кривых — построение нелинейных зависимостей в анимациях или управлении сервоприводами.

Практические замечания

  • Единицы измерения. Функция принимает только радианы. Передача градусов без перевода — одна из самых частых ошибок. Перевод: rad = degrees * PI / 180.0.
  • Особые точки. При углах π/2, 3π/2 и других нечётных кратных π/2 тангенс стремится к бесконечности. Если ваш угол может приближаться к этим значениям, добавьте проверку или ограничение диапазона.
  • Тип данных. Параметр rad должен быть типа float или double. Если передать целое число, компилятор выполнит неявное приведение, но лучше явно объявить переменную как float.
  • Точность на AVR-платах. На платах с 8-битным микроконтроллером (Uno, Nano и т. п.) float и double имеют одинаковую точность — 32 бита. Ожидать большей точности от double на таких платах не стоит.
  • Отладка через Serial Monitor. Если результат выглядит неожиданно большим или равен бесконечности, проверьте, не попал ли угол в окрестность π/2. Выведите значение rad перед вызовом функции, чтобы убедиться в корректности входных данных.

Полезные материалы