PHP cos() 函数

定义和用法

cos() 函数返回一个角度的余弦值。该函数接受弧度制的角度作为参数,并返回 -1 到 1 之间的数值。

提示:如需计算反正弦,请使用 acos() 函数。如需将角度从度数转换为弧度,可以使用 deg2rad() 函数。

语法

cos(float $num): float
参数 描述
num 必需。规定一个以弧度表示的角度。

返回值

返回 num 的余弦值,范围为 -1 到 1 之间。

PHP 版本

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

示例

示例 1:基本用法

<?php
echo cos(0) . "<br>";          // 1
echo cos(M_PI) . "<br>";       // -1 (π 弧度 = 180°)
echo cos(M_PI / 2) . "<br>";   // 约 0 (π/2 弧度 = 90°)
?>

输出:

1
-1
6.1232339957368E-17  (非常接近0)

示例 2:使用度数输入

<?php
function cos_deg($degrees) {
    return cos(deg2rad($degrees));
}

echo cos_deg(60) . "<br>";   // 0.5
echo cos_deg(45) . "<br>";   // 约 0.70710678118655
echo cos_deg(90) . "<br>";   // 约 0
?>

输出:

0.5
0.70710678118655
6.1232339957368E-17

示例 3:实际应用 - 计算向量夹角

<?php
// 计算两个向量的夹角(弧度)
function angleBetweenVectors($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;

    return acos($dot / ($mag1 * $mag2));
}

$angle = angleBetweenVectors(1, 0, 0, 1);
echo "向量 (1,0) 和 (0,1) 的夹角为: " . $angle . " 弧度 (" . rad2deg($angle) . "°)";
?>

输出:

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

相关函数

注意事项

重要:
  • cos() 接受的参数必须以弧度为单位。如果使用度数,请先用 deg2rad() 转换。
  • 由于浮点数精度问题,某些角度的余弦可能不会精确为 0(例如 cos(π/2) 返回一个非常接近 0 的小数)。
  • 传入非数值类型参数可能导致意外结果或警告(PHP 8.0+ 中会抛出 TypeError)。