ホームページ  >  記事  >  バックエンド開発  >  atan() の呪いと atan の物語: コーディングの世界における見当識障害の物語

atan() の呪いと atan の物語: コーディングの世界における見当識障害の物語

DDD
DDDオリジナル
2024-10-24 19:02:02963ブラウズ

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

Hello Coders Francisco ?‍☠️ atan() を使用して角度を見つけようとしてコーディングの海に迷い込んで、角度が見つからないことにイライラしたことはありませんか?正しい方向。あなた一人じゃありません今日は、PHP で atan2() という宝物を見つける冒険に出かけます。 atan() があなたを危険にさらす一方で、atan2() があなたを安全に移植できる理由を見てみましょう。

それでは旅を始めましょう。 ⛵

あなたが宝の地図を持っていると想像してください。地図上の点 (x, y) にナビゲートされる島についての話があります。 atan() を使用することもできますが、やめてください。それは物語の一部にすぎません。 atan() を使用すると、Davy Jones のロッカーに直接連れて行かれる可能性があり、さらに悪いことに、バグだらけのコードベースに連れて行かれる可能性があります。 ?したがって、正しい道をたどるには、この物語のキャプテン ジャック スパロウである atan2() が必要です。

アタン()の呪いの物語

この atan() 関数は、ほぼすべての言語で見つかります。 php について話します。 atan() は主に角度を計算するために使用されます。しかし、ここに問題があります。atan() は y/x 比のみを考慮し、どの象限にいるかは考慮しません。彼を完全に信頼し始めると、間違った方向に進んでいることに気づくかもしれません。なぜ? atan() は画像全体を返すのではなく、第 1 象限に対する相対的な角度を示すだけであるためです。

なぜですか?なぜなら、atan() は画像全体を提供するわけではなく、第 1 象限に対する相対的な角度を伝えるだけだからです。つまり、西に行くときは、実際には東に行く必要があるということです。一方、atan2() は、x 座標と y 座標の両方を考慮し、優れたコンパスのように、自分がどの象限にいるかを正確に把握します。

ここで、これら 2 つの違いについてもう少し詳しく見てみましょう。

atan() と atan2() の違い

次に、コード言語で言ってみましょう:

  • atan() は y/x 比の逆正接を計算しますが、画像全体はわかりません。ターゲットは第 2 象限にありますか?三番目? atan() は全く分からず、気にも留めません。

atan() 関数のパラメータは、y/x 比の値である数値です。ここで、y と x は 2 つの変数または数値です。

 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) が第 2 象限にあることを明確に示しています。これで宝島がどの方向にあるのかが簡単に分かりました。

?ラジアン vs 度 (これは単なる数学ではなく、生活の問題です!)

PHP の atan() 関数と atan2() 関数は角度をラジアンで与えます。冗談のようですね!心配しないでください。これは角度を測定する方法が違うだけです。人間と海賊が理解できるように、rad2deg() 関数を使用して度に変換しました。

私自身の atan() と atan2()

次に、atan() と atan2() を独自のものにして、その動作をよりよく理解してみましょう。

⚠️ これは頭の痛いことだと思われる場合は、このセクションを飛ばしてください。 ?

atan() を作成しましょう

atan() は数値の逆正接を計算します。この関数を近似する 1 つの方法は、グレゴリー級数を使用することです。 atan(z) でよく使用されるシリーズは次のとおりです:

atan( x)n=0(1)nx2n 12n 1 here(x) およそ sum_{n=0}^{infty} frac{(-1)^n x^{2n 1}}{2n 1} ここ(x)≈n=0 2n 1 (−1)n x2n 1

もう少しストレートに書くと -

atan( x)xx33 x5 5x77 atan(x) 約 x - frac{x^3}{3} frac{x^5}{5} - frac{x^7}{7}ldots atan(x)≈x−3x3 5x5 7x7

次に、このシリーズをコードで書いてみましょう

 atan(float $num): float

atan2() を作成しましょう

ここで、atan() 関数を使用して

atan2() を作成します。この関数の主なタスクは、正しい象限のみを識別することです。では、なぜ遅れたのか、書いてみましょう -

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

今からすべての話をさせてください

ここで、4 つの象限の結果を見て、各象限について説明します。

  • 第 1 象限 (象限 I): いつ x=10x = 10x=10 そして y=5y = 5y=5 すると、atan($y / $x) は 26.57 度、atan2($y, $x) は 26.56 度になります。どちらの場合も、それは第 1 四半期にあります。
  • 第 2 象限 (象限 II): いつ x=10x = -10 x=−10 そして y=5y = 5y=5 この場合、atan($y / $x) は -26.57 度、atan2($y, $x) は 153.43 度になります。ここで、atan2() は明確に第 2 四半期を示しています。
  • 第 3 象限 (象限 III): いつ x=10x = -10 x=−10 そして y=5y = -5 y=−5 すると、atan($y / $x) は -26.57 度、atan2($y, $x) は -233.43 度になります。第3四半期に入りました。
  • 第 4 象限 (象限 IV): いつ x=10x = 10x=10 そして y=5y = -5 y=−5 すると、atan($y / $x) は -26.57 度、atan2($y, $x) は -26.56 度になります。ここからは第 4 四半期です。

☠️間違いから学ぶ

したがって、次回角度と座標の危険な海を航行するときは、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。