Rad2deg: примеры (PHP)

Работа с функцией rad2deg для перевода радианов в градусы
Раздел: Математические функции
rad2deg(float $num): float
Функция rad2deg в PHP

Функция rad2deg() выполняет преобразование угла из радиан в градусы. Она является частью математического расширения PHP и применяется в задачах, связанных с геометрией, компьютерной графикой, обработкой географических координат и в других областях, где требуется работа с угловыми величинами.

Аргументы функции

Функция принимает единственный обязательный аргумент:

  • $num (тип float) — значение угла в радианах, которое необходимо преобразовать в градусы.

Возвращаемое значение — число типа float, представляющее угол в градусах.

Примеры использования rad2deg
echo rad2deg(M_PI); // Конвертация числа Пи
180
echo rad2deg(M_PI_2); // Конвертация Пи/2
90
echo rad2deg(2 * M_PI); // Конвертация 2*Пи
360
echo rad2deg(-M_PI_4); // Конвертация отрицательного значения
-45
echo rad2deg(1); // Конвертация одного радиана
57.295779513082
Похожие функции в PHP

Функция выполняет обратное преобразование — из градусов в радианы. Она часто используется в паре с rad2deg().

echo deg2rad(180);
3.1415926535898

Выбор между rad2deg() и deg2rad() зависит от исходных данных. Первую применяют, когда начальные значения заданы в радианах, вторую — когда в градусах.

Альтернативы в других языках

Rad2deg в Python

В модуле math используется функция degrees().

import math
print(math.degrees(math.pi))
180.0

Rad2deg в Javascript

Прямого аналога нет, используется формула: градусы = радианы * (180 / Math.PI).

console.log((Math.PI * 180) / Math.PI);
180

Rad2deg в MySQL

Функция DEGREES() выполняет аналогичное преобразование.

SELECT DEGREES(PI());
180

В отличие от PHP, в JavaScript аналога как отдельной функции нет, а в Python и MySQL синтаксис вызова отличается.

Типичные ошибки
Передача аргумента нечислового типа

Функция ожидает число. Передача строки может привести к неявному преобразованию или ошибке в строгом режиме.

echo rad2deg('3.14'); // До PHP 8
Вернет значение, но аргумент будет преобразован в float.
// В PHP 8+ с включенным strict_types
declare(strict_types=1);
echo rad2deg('3.14');
TypeError: rad2deg(): Argument #1 ($num) must be of type float, string given
Путаница между радианами и градусами

Использование функции для значения, уже заданного в градусах, приводит к неверному результату.

echo rad2deg(90); // Ошибочно: 90 радиан, а не градусов
5156.6201561774
Изменения в последних версиях PHP

В PHP 8.0.0 сигнатура функции была изменена. Аргумент $num теперь явно объявлен как тип float. В предыдущих версиях тип аргумента не объявлялся явно, и передача нечислового значения могла приводить к неявному преобразованию. С PHP 8.0 при включенной директиве strict_types передача аргумента несовместимого типа вызывает исключение TypeError.

Расширенные примеры
Обработка массива значений

Функция может применяться для преобразования нескольких значений с помощью array_map().

Пример php
$radians = [0, M_PI/6, M_PI/4, M_PI/3];
$degrees = array_map('rad2deg', $radians);
print_r($degrees);
Array
(
    [0] => 0
    [1] => 30
    [2] => 45
    [3] => 60
)
Использование в геометрических расчетах

Пример вычисления координат точки на окружности.

Пример php
function pointOnCircle($radius, $angleRad) {
    $x = $radius * cos($angleRad);
    $y = $radius * sin($angleRad);
    return ['x' => $x, 'y' => $y, 'angle_deg' => rad2deg($angleRad)];
}
$point = pointOnCircle(10, M_PI/3);
print_r($point);
Array
(
    [x] => 5
    [y] => 8.6602540378444
    [angle_deg] => 60
)
Нормализация угла в градусах

Преобразование радиан в градусы с приведением результата к диапазону [0, 360).

Пример php
function normalizeAngle($radians) {
    $degrees = rad2deg($radians);
    $degrees = fmod($degrees, 360);
    if ($degrees < 0) {
        $degrees += 360;
    }
    return $degrees;
}
echo normalizeAngle(-M_PI/2);
270
Сравнение углов с заданной точностью

Пример сравнения двух углов в радианах после перевода в градусы.

Пример php
$angle1 = 1.0471975511966; // ~60 градусов в радианах
$angle2 = deg2rad(60); // Преобразование 60 градусов в радианы
$diff = abs(rad2deg($angle1) - rad2deg($angle2));
$epsilon = 0.0001;
if ($diff < $epsilon) {
    echo 'Углы равны с заданной точностью.';
}
Углы равны с заданной точностью.

PHP rad2deg function comments

En
Rad2deg Converts the radian number to the equivalent number in degrees