PHP rad2deg() 函数

定义和用法

rad2deg() 函数将弧度值转换为角度值。

提示:如需将角度转换为弧度,请使用 deg2rad() 函数。该函数常用于三角函数计算结果的转换,因为 PHP 的三角函数(如 sin、cos、tan)返回弧度值。

语法

rad2deg(float $num): float
参数 描述
num 必需。规定要转换的弧度值。

返回值

返回 num 转换后的角度值(浮点数)。

PHP 版本

  • PHP 4+
  • PHP 5+
  • PHP 7+
  • PHP 8+

示例

示例 1:基本用法

<?php
echo rad2deg(M_PI) . "<br>";      // 180
echo rad2deg(M_PI_2) . "<br>";    // 90
echo rad2deg(M_PI_4) . "<br>";    // 45
echo rad2deg(1) . "<br>";         // 约 57.295779513082
?>

输出:

180
90
45
57.295779513082

示例 2:与三角函数结合使用

<?php
// 计算 sin(30°) 的值(先将角度转为弧度计算,再将结果转回角度?通常不需要转回)
$angle_rad = deg2rad(30);
$sin_value = sin($angle_rad);
echo "sin(30°) = $sin_value<br>";

// 已知 sin 值求角度(反正弦)
$x = 0.5;
$angle_rad = asin($x);
$angle_deg = rad2deg($angle_rad);
echo "asin(0.5) 对应的角度 = $angle_deg°";
?>

输出:

sin(30°) = 0.5
asin(0.5) 对应的角度 = 30°

示例 3:实际应用 - 计算向量夹角(以度为单位)

<?php
// 计算两个向量的夹角(以度为单位)
function angleBetweenVectorsDeg($x1, $y1, $x2, $y2) {
    $dot = $x1 * $x2 + $y1 * $y2;
    $mag1 = sqrt($x1 * $x1 + $y1 * $y1);
    $mag2 = sqrt($x2 * $x2 + $y2 * $y2);

    if ($mag1 == 0 || $mag2 == 0) return 0;

    $cos = $dot / ($mag1 * $mag2);
    // 防止浮点误差导致 $cos 超出 [-1,1]
    $cos = max(-1, min(1, $cos));
    return rad2deg(acos($cos));
}

$angle = angleBetweenVectorsDeg(1, 0, 0, 1);
echo "向量 (1,0) 和 (0,1) 的夹角为: $angle°";
?>

输出:

向量 (1,0) 和 (0,1) 的夹角为: 90°

相关函数

注意事项

重要:
  • rad2deg() 的返回值是浮点数,因此可能存在微小的精度误差,但在大多数应用场景下可以忽略。
  • 该函数等价于 $num * 180 / pi(),但使用内置函数通常更快且更准确。
  • 传入非数值类型参数会导致警告(PHP 7+)或 TypeError(PHP 8+)。