rad2deg() 函数将弧度值转换为角度值。
rad2deg(float $num): float
| 参数 | 描述 |
|---|---|
num |
必需。规定要转换的弧度值。 |
返回 num 转换后的角度值(浮点数)。
<?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
<?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°
<?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(),但使用内置函数通常更快且更准确。