當前位置: 首頁> 最新文章列表> 如何使用deg2rad 與tan 計算方向角?

如何使用deg2rad 與tan 計算方向角?

gitbox 2025-05-29

1. 方向角的定義與計算背景

方向角通常表示一個點相對於基準方向(如正北)順時針旋轉的角度。在平面坐標系中,我們經常需要根據兩個點的坐標計算它們之間的方向角。

假設有兩個點(x1, y1)(x2, y2) ,我們想計算從點1指向點2的方向角。

2. 使用deg2rad 和tan 函數計算方向角的基本思路

在數學中,方向角可以通過以下公式計算:

θ = arctan ? ( Δ y Δ x ) \theta = \arctan\left(\frac{\Delta y}{\Delta x}\right)

這裡, Δ x = x 2 ? x 1 \Delta x = x_2 - x_1 Δ y = y 2 ? y 1 \Delta y = y_2 - y_1

PHP 中, tan()是正切函數, atan()是反正切函數; deg2rad()用於將角度轉換為弧度,因為三角函數接受的參數是弧度製。

計算方向角時,我們通常需要先獲得反正切值(弧度),然後轉換為角度。

3. PHP 代碼示例

<?php
// 起點和終點坐標
$x1 = 10;
$y1 = 15;
$x2 = 20;
$y2 = 25;

// 計算坐標差值
$dx = $x2 - $x1;
$dy = $y2 - $y1;

// 計算方向角的弧程度值,注意 atan2 能區分象限
$angleRad = atan2($dy, $dx);

// 將弧程度轉換為角程度
$angleDeg = rad2deg($angleRad);

// 方向角通常需要轉換為 0-360 程度之間
if ($angleDeg < 0) {
    $angleDeg += 360;
}

echo "方向角為:".$angleDeg." 程度";
?>

以上代碼演示瞭如何利用atan2()計算方向角, atan2()是計算arctan ? ( y x ) \arctan(\frac{y}{x}) 的更精確函數,可以自動處理不同象限的角度,避免誤差。

4. 為什麼不用單純的tan 和deg2rad?

tan()是用來計算正切值的函數,而不是用來計算角度的。計算方向角需要的是反正切函數atan()或更完善的atan2()deg2rad()是用來將度數轉換為弧度的輔助函數,主要用於輸入角度轉弧度,方便調用三角函數。

如果你用tan()直接計算角度,流程是錯誤的。你需要先用坐標計算角度(弧度),再轉換成角度。

5. 總結

  • 計算方向角時,重點是用atan2()獲得正確的弧度值;

  • deg2rad()用於將角度轉換成弧度,適合在你已有角度值時轉為弧度調用三角函數;

  • 方向角應規範在0-360 度範圍內;

  • tan()函數本身只適合求正切值,不用於反求角度。

掌握上述知識點後,便可用PHP 精確地計算兩點間的方向角。