#System.Math.Atan2関数とかいう座標からラジアンが求められる最高の関数
でもドキュメントに書いてあるのと結果が違う。(違いませんでした、追記をご覧ください。4/26 22:35)
以下がドキュメント
- y が 0 で x が負数でない場合は、θ = 0。
- y が 0 で x が負の場合は、θ = π。
- y が正で x が 0 の場合は、θ = π/2。
- y が負数で x が 0 の場合は、θ = -π/2。
- y が 0 かつ x が 0 の場合は、θ = 0。
そして以下がうちの環境でテストした結果
Visual Studio 2019 16.0.1
.NET Framework 4.7.03056
test.cs
System.Math.Atan2( 1.0, 0.0); // 1.5707963267949
System.Math.Atan2(-1.0, 0.0); // -1.5707963267949
System.Math.Atan2( 0.0, 1.0); // 0
System.Math.Atan2( 0.0, -1.0); // 3.14159265358979
System.Math.Atan2( 0.0, 0.0); // 0
????????????????
基準線が正のx軸ではなくて正のy軸になっているように見える…どうして?(現場猫)
Unity上でクリックしたところの角度を出して、その方向にキャラを移動させようと思ったら見事に明後日の方向に吹き飛んでいきました。かなしい。
#リファレンスはおかしくないし計算結果もおかしくなかった(4/26 22:35 追記)
おかしかったのは自分の頭でした。目かな。
public static double Atan2 (double y, double x);
引数が逆やん!!!!!!!!!!!!!!!!!!!!!!!
どうしてyが先なんですか?(現場猫)
なにはともあれ自己解決。めでたしめでたし。