Ruby 4.1 リファレンスマニュアル

module function Math?.atan2

atan2(y, x) -> Float[permalink][rdoc][edit]

y / x の逆正接関数(arctangent)の値をラジアンで返します。

[PARAM] y:
実数
[PARAM] x:
実数
[RETURN]
返される値の範囲は [-π, π] です。
p Math.atan2(1,0)  # =>  1.5707963267949
p Math.atan2(-1,0) # => -1.5707963267949

y に符号付きゼロを渡した場合、+0.0-0.0 は区別され、結果の符号が変わります。

例: 符号付きゼロ
p Math.atan2(0.0, -1)   # =>  3.141592653589793
p Math.atan2(-0.0, -1)  # => -3.141592653589793

x に符号付きゼロを渡した場合も +0.0-0.0 は区別されます。そのため、atan2(y, x)atan(y / x) とは異なる結果になることがあります。

例: x が符号付きゼロの場合の atan との違い
p Math.atan2(1.0, -0.0)  # =>  1.5707963267948966
p Math.atan(1.0 / -0.0)  # => -1.5707963267948966
[EXCEPTION] TypeError:
y, x に数値以外を指定した場合に発生します。
[EXCEPTION] RangeError:
y, x に実数以外の数値を指定した場合に発生します。

[SEE_ALSO] Math?.atan, Math?.tan