C における atan と atan2 の違い
数学では、角度 α の正接は、その正弦と角度の比として定義されます。 cosine:
tan(α) = sin(α) / cos(α)
ただし、この式では、異なる象限の角度を区別できません。このあいまいさを解決するために、C には atan と atan2 という 2 つの関数が用意されています。
atan: あいまいな角度の計算
atan() 関数は、-π/2 の間の角度を返します。元の正接値が導出された象限に関係なく、π/2 となります。これは、atan() が第 1 象限と第 4 象限 (接線が正の場合) の角度のみを正確に表現できることを意味します。
atan2: 正確な角度の決定
atan とは異なります() の場合、atan2() 関数は 2 つの引数、y と x を取ります。これらは、それぞれ角度のサイン成分とコサイン成分を表します。 atan2() はこれらの値を使用して角度を計算し、コサインが負の場合は常に atan() の結果に π を加算することで 4 つの象限すべてを解決します。
ベクトルの表現
atan2(y, x) 関数は、ベクトルを表すのに特に便利です。 y 引数と x 引数は、それぞれ y 軸と x 軸上の長さ v と角度 α のベクトルの投影を表します:
y = v * sin(α) x = v * cos(α)
したがって、これらの値の関係は次のとおりです:
y/x = tan(α)
結論
atan() 関数は、第 1 象限または第 4 象限からの角度のみが関連する状況に適しています。ただし、正確な角度の決定が不可欠な場合は、atan2() 関数を優先する必要があります。これは角度の全範囲を提供し、入力値が異なる象限からのものであっても正しい角度を解決できます。
以上がC では atan() と atan2() をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。