4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

System.Math.Atan2関数の計算結果がおかしい

Last updated at Posted at 2019-04-26

#System.Math.Atan2関数とかいう座標からラジアンが求められる最高の関数
でもドキュメントに書いてあるのと結果が違う。(違いませんでした、追記をご覧ください。4/26 22:35)

以下がドキュメント

.NET Framework 4.7.1 公式リファレンス

  • 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 追記)
おかしかったのは自分の頭でした。目かな。

.NET Framework 4.7.1 公式リファレンス

public static double Atan2 (double y, double x);

引数が逆やん!!!!!!!!!!!!!!!!!!!!!!!
どうしてyが先なんですか?(現場猫)

なにはともあれ自己解決。めでたしめでたし。

4
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?