Rad2deg: примеры (PHP)
rad2deg(float $num): floatФункция rad2deg() выполняет преобразование угла из радиан в градусы. Она является частью математического расширения PHP и применяется в задачах, связанных с геометрией, компьютерной графикой, обработкой географических координат и в других областях, где требуется работа с угловыми величинами.
Функция принимает единственный обязательный аргумент:
- $num (тип float) — значение угла в радианах, которое необходимо преобразовать в градусы.
Возвращаемое значение — число типа float, представляющее угол в градусах.
echo rad2deg(M_PI); // Конвертация числа Пи180
echo rad2deg(M_PI_2); // Конвертация Пи/290
echo rad2deg(2 * M_PI); // Конвертация 2*Пи360
echo rad2deg(-M_PI_4); // Конвертация отрицательного значения-45
echo rad2deg(1); // Конвертация одного радиана57.295779513082
Функция выполняет обратное преобразование — из градусов в радианы. Она часто используется в паре с 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 8.0.0 сигнатура функции была изменена. Аргумент $num теперь явно объявлен как тип float. В предыдущих версиях тип аргумента не объявлялся явно, и передача нечислового значения могла приводить к неявному преобразованию. С PHP 8.0 при включенной директиве strict_types передача аргумента несовместимого типа вызывает исключение TypeError.
Функция может применяться для преобразования нескольких значений с помощью array_map().
$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
)Пример вычисления координат точки на окружности.
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).
function normalizeAngle($radians) {
$degrees = rad2deg($radians);
$degrees = fmod($degrees, 360);
if ($degrees < 0) {
$degrees += 360;
}
return $degrees;
}
echo normalizeAngle(-M_PI/2);270
Пример сравнения двух углов в радианах после перевода в градусы.
$angle1 = 1.0471975511966; // ~60 градусов в радианах
$angle2 = deg2rad(60); // Преобразование 60 градусов в радианы
$diff = abs(rad2deg($angle1) - rad2deg($angle2));
$epsilon = 0.0001;
if ($diff < $epsilon) {
echo 'Углы равны с заданной точностью.';
}Углы равны с заданной точностью.