C の atan と atan2 の違い
三角関数では、逆正接関数 (atan) は、正接が指定された値である角度を計算します。 。ただし、atan には、入力に関係なく、第 1 象限または第 4 象限 (-π/2
この制限のために、C は atan2 関数を提供します。 1 つの引数 (タンジェント) のみを取る atan とは異なり、atan2 は角度のサインとコサインという 2 つの引数を取ります。これにより、atan2 は角度の象限を決定し、-π 象限解像度
の範囲内の正しい角度を返すことができます。 atan と atan2 の主な違いは、角度の象限をどのように解決するかにあります。 atan は入力が第 1 象限または第 4 象限からのものであると想定しますが、atan2 は正弦と余弦の両方の符号を考慮して正しい値を決定します。 quadrant.
Quadrant | atan() | atan2(sin(α), cos(α)) |
---|---|---|
I | -π/2 <= atan() <= π/2 | 0 <= atan2() <= π/2 |
II | -π/2 <= atan() <= π/2 | -π/2 <= atan2() <= 0 |
III | -π/2 <= atan() <= π/2 | π/2 <= atan2() <= π |
IV | -π/2 <= atan() <= π/2 | 0 <= atan2() <= π/2 |
double atan(double radians); double atan2(double y, double x);例
タンジェントが 1 の角度 α を考えます。 atan() だけを使用すると、α が第 1 象限にあるか、第 3 象限にあるかを判断できません。ただし、atan2() を使用すると、正しい角度を取得できます。
double angle = atan2(sin(alpha), cos(alpha));補足
atan2() は、ベクトル計算で特に役立ちます。デカルト座標でベクトルの角度を見つけるために使用されます。
結論第 1 象限または第 4 象限内の角度のみを必要とする特定のアプリケーションには atan で十分ですが、atan2 は角度の象限を解決することにより、より包括的なソリューションを提供します。範囲全体 [-π, π] 内の正しい角度を返します。
以上がC の atan 関数と atan2 関数の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。