C#のMath.Atan2()メソッドの使い方を徹底解説
C#のMath.Atan2()メソッドは、指定された2つの数値の商(y/x)に対するタangent(正接)が一致する角度を返すために使用されます。通常のMath.Atan()メソッドと異なり、Atan2()は4つの象限すべてを考慮できるため、座標平面上の角度計算においてより実用的です。
構文
Math.Atan2()メソッドの構文は以下の通りです。
public static double Atan2 (double val1, double val2);
ここで、val1はy座標、val2はx座標を表します。戻り値はラジアン単位の角度(-π ≤ θ ≤ π)です。
例1:基本的な使い方
それでは、Math.Atan2()メソッドを実装したサンプルコードを見てみましょう。
using System;
public class Demo {
public static void Main(){
double val1 = 3.0;
double val2 = 1.0;
double angle, radians;
radians = Math.Atan2(val1, val2);
angle = radians * (180/Math.PI);
Console.WriteLine("Result = "+angle);
}
}この例では、Math.Atan2(3.0, 1.0)で得られるラジアン値を度数法に変換して表示しています。ラジアンから度への変換は「radians × (180 / Math.PI)」という式で行います。
出力結果
上記のコードを実行すると、次の出力が得られます。
Result = 71.565051177078
例2:x座標のみの場合
続いて、別の例を見てみましょう。y座標が0の場合の挙動を確認します。
using System;
public class Demo {
public static void Main(){
double val1 = 0;
double val2 = 5;
double angle, radians;
radians = Math.Atan2(val1, val2);
angle = radians * (180/Math.PI);
Console.WriteLine("Result = "+angle);
}
}出力結果
このコードを実行すると、次の出力が得られます。
Result = 0
y座標が0でx座標が正の値の場合、点はx軸の正方向に存在するため、角度は0度となります。このようにMath.Atan2()は、点(x, y)と原点を結ぶ直線がx軸となす角度を正確に求めることができます。
まとめ
Math.Atan2()メソッドは、2つの引数(y座標とx座標)を受け取り、その点の角度をラジアンで返します。象限情報を保持できるため、ゲーム開発におけるキャラクターの向き計算や、グラフィック処理での回転角の算出など、幅広い場面で活用されています。戻り値はラジアンであるため、必要に応じて度数法への変換を行いましょう。
-
C#のMath.Log()メソッドの使い方を徹底解説
C#のMath.Log()メソッドは、指定された数値の対数を返すために使用される静的メソッドです。引数を1つだけ渡した場合は自然対数(底e)が計算され、2つ目の引数で底を指定することもできます。 構文 public static double Log(double num) public static double Log(double num, double base) 上記の構文における各要素の意味は以下の通りです。 num:対数を計算する対象となる数値 base:対数の底(基数)。省略した場合は自然対数(底e)が計算されます なお、引数に負の数やNaNを渡した場合、戻り値はNa
-
C#のMath.IEEERemainder()メソッドとは?使い方と実行例を解説
C#のMath.IEEERemainder()メソッドは、指定した数値(被除数)を別の数値(除数)で除算した結果の剰余を、IEEE 754規格に基づいて返す静的メソッドです。通常の剰余演算子「%」とは計算結果が異なる場合がある点に注意しましょう。構文public static double IEEERemainder (double dividend, double divisor);パラメータdividend:被除数(割られる数)を表す倍精度浮動小数点数。divisor:除数(割る数)を表す倍精度浮動小数点数。戻り値dividend を divisor で割ったIEEE剰余を返します。この剰