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. - Вычисление тригонометрических функций занимает заметно больше времени, чем целочисленная арифметика. Если функция вызывается в быстром цикле, заранее рассчитайте таблицу значений и храните её в массиве.