首頁 >後端開發 >php教程 >atan() 的詛咒與 atan 的故事:編碼世界迷失方向的故事

atan() 的詛咒與 atan 的故事:編碼世界迷失方向的故事

DDD
DDD原創
2024-10-24 19:02:021042瀏覽

atan() এর অভিশাপ এবং atan এর কাহিনী: কোডিং জগতে দিশা হারানোর গল্প

編碼海盜你好? ‍☠️ 你是否曾發現自己迷失在編碼的海洋中,只是試圖使用 atan() 找出角度,並因無法找到角度而感到沮喪正確的方向。你並不孤單今天我們要進行一場冒險,在那裡我們將找到 PHP 中名為 atan2() 的寶藏。讓我們看看為什麼 atan() 會讓你陷入危險,而 atan2() 會讓你安全到達港口。

那我們就開始旅程吧。 ⛵

想像你有一張藏寶圖。有人談論一個島嶼,它被導航到地圖上的一個點 (x, y)。你可以使用atan()——但是停下來!這只是故事的一部分。 atan() 可以直接帶您進入 Davy Jones 的儲物櫃,或者更糟的是,帶您進入充滿錯誤的程式碼庫。 ?所以如果你想要得到正確的路徑,你需要atan2(),也就是這個故事中的傑克船長。

atan()詛咒的故事

這個atan()函數幾乎在所有語言中都可以找到。我們談論php。 atan()主要用於計算角度。但這裡有一個問題 - atan() 只關心 y/x 比率,它不關心你在哪個像限。如果你開始完全信任他,你可能會發現你正走錯方向。為什麼?因為 atan() 不傳回整個影像,它只告訴相對於第一象限的角度。

為什麼?因為 atan() 不給出整個圖像 - 它只給出相對於第一象限的角度。這意味著當你向西行駛時,你實際上應該向東行駛!另一方面,atan2() 會同時考慮 x 和 y 座標,並且像一個好的指南針一樣準確地知道您位於哪個象限。

現在讓我們更了解這兩者之間的差異。

atan() 和 atan2() 之間的區別

現在讓我們用程式語言來說:

  • atan() 計算 y/x 比率的反正切,但不知道整個影像。目標是否在第二象限?第三? atan() 不知道,甚至不打擾。

atan()函數的參數是一個數字,即比率y/x的值,其中y和x是兩個變數或數值。

 atan(float $num): float
  • 另一方面,atan2() 確切地知道 (x, y) 點在哪裡,並傳回任何象限中的正確角度。

atan2()函數的參數為2.

  • $y:Y 座標值。
  • $x:X 座標值。
 atan2(float $y, float $x): float

讓我們試著透過一個例子來理解這個問題。

// $y এবং $x এর মান নির্ধারণ
$y = 5;
$x = -10;

// atan() ব্যবহার - শুধুমাত্র y/x অনুপাত জানে
$angle1 = atan($y / $x);
echo "atan() angle: " . rad2deg($angle1) . " degrees\n";
// Outputs: -26.57 degrees

// atan2() ব্যবহার - $x এবং $y উভয়ই বিবেচনায় নেয়
$angle2 = atan2($y, $x);
echo "atan2() angle: " . rad2deg($angle2) . " degrees\n";
// Outputs: 153.43 degrees

從範例中可以看出,atan() 確實會傳回一個角度。但方向並沒有說明白。也就是說,不知道你處於哪個像限。另一方面,我們使用 atan2() 函數獲得的值清楚地表明點 (x,which) 位於第二象限。現在我們可以很容易地了解金銀島在哪個方向了。

?弧度與度數(這不只是數學,更是生活!)

PHP 的 atan() 和 atan2() 函數為您提供以弧度為單位的角度。這看起來像個笑話!別擔心——這只是測量角度的不同方法。為了人類和海盜能夠理解,我使用 rad2deg() 函數將其轉換為度數。

我自己的atan()和atan2()

現在讓我們嘗試製作我們自己的atan()和atan2(),以便更好地理解它們的操作。

⚠️ 如果您覺得這超出了您的理解範圍,請跳過本節! ?

讓我們創建 atan()

atan() 計算數字的反正切。近似函數的一種方法是使用格雷戈里級數。以下是atan(z)的常用級數:

atananx)Σnnn >0(1111111)nx2n2n2n2n >12n 1 1 1 1 1 1 1 這裡(x)近似sum_{n=0}^{infty} frac{(-1)^n x^{2n 1}}{2n 1} 此處(x)≈Σ
∞∞∞ 2n 1 (−1)nn> > x2n 12n 1

如果寫得直一些,則代表 -

atananx)xx33 x5x5x5x5x5x5x5x 5−x7777777 … atan(x) 估計 x - frac{x^3}{3} frac{x^5}{5} - frac{x^7}{7}點 atan(x)≈x−3x 🎜> 5 >x5
−7x> > …

現在讓我們用程式碼來寫這個系列

 atan(float $num): float

讓我們創建atan2()

現在我們將使用 atan() 函數來建立

atan2()。此函數的主要任務是僅識別正確的象限。那為什麼要拖延呢,我們來寫吧 -

 atan2(float $y, float $x): float

現在讓我告訴你整個故事

現在我們來看看四個像限結果並解釋每個象限:

  • 第一象限(象限 I): 什麼時候 x=10x = 1010x = 10 >x=10 y=5y = 55y = 5 >y=
  • 5
  • 則atan($y / $x) 是26.57 度,atan2($y, $x) 是26.56 度。這兩種情況都是在第一季。 第二象限(象限 II): 什麼時候 x=101010> x=−10y=5
  • y = 55y = 5 >y=5 則atan($y / $x) 是-26.57 度,atan2($y, $x) 是153.43 度。這裡atan2()清楚地表明了第二季。
  • 第三象限(第三象限): 什麼時候 x=101010> x=−10 y=55
  • y=−5 則atan($y / $x) 是-26.57 度,atan2($y, $x) 是-233.43 度。現在是第三季了。 第四象限(第四象限): 什麼時候 x=10x = 1010x = 10 >x=10y=
5

5y=−5 則atan($y / $x) 是-26.57 度,atan2($y, $x) 是-26.56 度。這是第四季。 ☠️從錯誤中學習 所以下次當你在危險的角度和坐標海洋中航行時,不要只依賴 atan()。使用 atan2() 並讓你的船每次都朝著正確的方向行駛。這是指南針,可以讓您遠離可怕的戴維瓊斯儲物櫃的錯誤計算!

祝福您的寶藏之旅一切順利。

如果您想了解更多關於atan()和atan2()的信息,請訪問以下連結:

  • https://www.php.net/manual/en/function.atan.php
  • https://www.php.net/manual/en/function.atan2.php

以上是atan() 的詛咒與 atan 的故事:編碼世界迷失方向的故事的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn