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

cos()

cos(rad) возвращает косинус угла в радианах как double со значением от -1 до 1 — угол в градусах предварительно умножьте на PI / 180.0.

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

Описание

cos() — стандартная тригонометрическая функция, которая вычисляет косинус угла. Угол передаётся в радианах, а не в градусах. Результат всегда находится в диапазоне от -1 до 1 включительно.

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

Синтаксис

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

cos(rad)

Параметры

rad: угол в радианах. Допустимые типы данных: float.

Возвращает

Косинус угла — число типа double в диапазоне от -1.0 до 1.0. На большинстве плат Arduino double совпадает с float и занимает 4 байта, поэтому на практике результат можно сохранять в переменную типа float.

Пример кода

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

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

  res = cos(angle);

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

void loop() {
}

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

  • Плавное движение и анимация. Косинус часто используют для создания плавных колебаний: например, чтобы светодиод пульсировал по синусоидальному закону яркости.
  • Управление сервоприводами и моторами. При вычислении траекторий и углов поворота в робототехнике.
  • Обработка сигналов. Генерация опорных синусоидальных сигналов для фильтрации или синхронизации.
  • Геометрические расчёты. Нахождение проекций вектора на ось, расчёт расстояний на плоскости.

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

  • Функция принимает угол в радианах. Передача градусов без перевода — самая частая ошибка. Используйте формулу radians = degrees * PI / 180.0, или встроенную функцию radians().
  • Константа PI доступна в Arduino без подключения дополнительных библиотек.
  • Результат cos() возвращается как double, но на платах с AVR-микроконтроллером (Uno, Nano, Mega) double и float — одно и то же (32-битное число). На платах с ARM-процессором (Due, Zero) double является полноценным 64-битным числом.
  • Если результат нужно использовать для управления ШИМ (analogWrite), умножьте его на нужный диапазон и сдвиньте: например, (cos(angle) + 1.0) * 127.5 даст значение от 0 до 255.
  • Вычисление тригонометрических функций занимает заметно больше времени, чем целочисленная арифметика. Если функция вызывается в быстром цикле, заранее рассчитайте таблицу значений и храните её в массиве.

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