如何在php中计算两个向量代码之间的角度

Nil*_*tel 3 php math linear-algebra

我想找到矢量之间的角度

v1 = [-1,-2]

v2 = [90,-5]

这里解决了如何计算角度(数学)

在PHP代码中需要计算两个向量之间的角度 [-1,-2] and [90,-5].需要PHP代码.

谢谢

Sup*_*icy 9

function norm($vec)
{
    $norm = 0;
    $components = count($vec);

    for ($i = 0; $i < $components; $i++)
        $norm += $vec[$i] * $vec[$i];

    return sqrt($norm);
}

function dot($vec1, $vec2)
{
    $prod = 0;
    $components = count($vec1);

    for ($i = 0; $i < $components; $i++)
        $prod += ($vec1[$i] * $vec2[$i]);

    return $prod;
}
Run Code Online (Sandbox Code Playgroud)

并计算实际角度:

$v1 = array(-1, -2);
$v2 = array(90, -5);

$ang = acos(dot($v1, $v2) / (norm($v1) * norm($v2)));

echo $ang; // angle in radians
> 1.97894543055 
Run Code Online (Sandbox Code Playgroud)

  • 零矢量与另一个矢量之间不能有一个角度.所以你可以在你的输入向量上添加一个检查,以确保它们都不是零向量(即不是[0,0,0]). (2认同)

Lic*_*son 8

你可以使用atan2($y,$x)php中的函数来完成它.找到弧度的角度.

<?php
$angle = rad2deg(atan2($y2-$y1,$x2-$x1));
//$angle is in degrees
?>
Run Code Online (Sandbox Code Playgroud)