acos()
Функция acos() в PHP возвращает арккосинус числа — угол, косинус которого равен заданному значению, в радианах.
Функция acos() в PHP возвращает арккосинус (обратный косинус) числа — то есть угол, косинус которого равен заданному значению. Это математическая обратная операция к cos(): если cos() превращает угол в отношение, то acos() превращает это отношение обратно в угол. Возвращаемый угол выражается в радианах.
На этой странице рассматриваются синтаксис, допустимый диапазон входных значений, способы перевода результата в градусы, граничные случаи при выходе за пределы диапазона, а также связь acos() с другими тригонометрическими функциями PHP.
Синтаксис
acos(float $num): float$num— число с плавающей точкой в диапазоне от-1до1включительно. Это обязательно, поскольку косинус любого вещественного угла всегда находится в этом диапазоне.- Возвращаемое значение — арккосинус
$numв радианах, в диапазоне от0доπ(приблизительно от0до3.14159). Если$numвыходит за пределы-1..1, функция возвращаетNAN(не число).
Простой пример
Мы передаём 0.5 в acos(), и функция возвращает примерно 1.0472 радиана — что в точности равно π / 3, углу, косинус которого равен 0.5.
Перевод результата в градусы
Поскольку acos() возвращает радианы, результат почти всегда нужно переводить в градусы для удобочитаемого вывода. Используйте rad2deg() или умножьте на 180 / pi():
<?php
$angle_in_radians = acos(0.5);
$angle_in_degrees = rad2deg($angle_in_radians);
echo $angle_in_degrees; // 60
?>Таким образом, угол, косинус которого равен 0.5, составляет 60 градусов. Обратное преобразование — перевод градусов в радианы перед вызовом тригонометрической функции — выполняется с помощью deg2rad().
Характерные значения
Следующие опорные точки полезно запомнить при работе с acos():
<?php
echo acos(1); // 0 (cos 0° = 1)
echo "\n";
echo acos(0); // 1.5707963… (π/2, i.e. 90°)
echo "\n";
echo acos(-1); // 3.1415926… (π, i.e. 180°)
?>Обработка значений вне допустимого диапазона
Если передать значение меньше -1 или больше 1, ни один вещественный угол не может иметь такой косинус, поэтому acos() возвращает NAN. Следует проверять это, когда входные данные поступают от пользователя или получены в результате вычислений:
<?php
$value = 2; // outside the valid -1..1 range
if ($value >= -1 && $value <= 1) {
echo rad2deg(acos($value));
} else {
echo "Input must be between -1 and 1.";
}
// Output: Input must be between -1 and 1.
?>Также можно проверить результат с помощью is_nan() после вызова функции.
Когда используется acos()?
acos() применяется везде, где нужно восстановить угол по значению косинуса:
- Геометрия и графика — нахождение угла между двумя векторами с использованием формулы скалярного произведения.
- Навигация — вычисление азимутов и ортодромических расстояний на сфере.
- Физика — определение углов в задачах о движении снаряда или волновых процессах.
Эта функция входит в одно семейство с asin() (арксинус) и atan() (арктангенс). Гиперболический вариант см. в acosh().
Заключение
Функция acos() возвращает арккосинус числа в виде угла в радианах, принимая входные значения от -1 до 1 и возвращая NAN для всего, что выходит за пределы этого диапазона. Не забывайте переводить результат в градусы с помощью rad2deg(), когда нужен понятный вывод, и проверять входные данные, которые могут оказаться вне допустимой области.