2017-01-07 4 views
4

x軸とx軸を結ぶ線がなす角度を求めようとしています。だから実際には、私は普通の古いtan inverseを見つけようとしています。 ここで私は私の予想結果は当然45ですが、私はy_from_centrex_from_centreとしてpoint(1,1)に供給していると私はPythonでtan inverseを見つける

0.7853981633974483 

を得るのPython 3に

angle_with_x_axis = math.atan(y_from_centre/x_from_centre) 

を使用しているコードです。 ここで何が間違っていますか?

+2

[それは45度です](https://www.google .co.uk/search?q = 0.7853981633974483 + radians + in + degrees&oq = 0.7853981633974483 + radians + in + degrees&aqs = chrome..69i57.2147j0j7&sourceid = chrome&ie = UTF-8)ラジアンで返されました。 – FlipTack

+1

私はすでに恥ずかしいです。 – Stacker

+0

別名:atan(y/x)ではなくatan2を考慮する必要があります。 – DSM

答えて

4

mathはラジアンを使用します。度ためmath.degreesを使用:

>>> math.degrees(math.atan(1)) 
45.0 
8

mathモジュールはラジアンで動作します。 0.785ラジアンは45度です。ドキュメントから:ラジアン

math.atan(x)はxの

戻りアークタンジェント。

2

math.atan()機能 - 及びmathモジュール内の他の多くの機能 - ラジアンでその結果を返します。ドキュメントには、このことを明確に述べている:

戻りラジアンにおけるxのアークタンジェント、

(強調鉱山)

mathモジュールは、しかし、ラジアンを度に変換する方法を提供しませんし、その逆:

>>> import math 
>>> math.degrees(math.atan(1)) 
45.0 
>>> 
>>> math.radians(45.0) 
0.7853981633974483 
>>> 

ます。また、ラップするヘルパー関数を作成することができますこのロジック:

>>> def atan_in_degress(x): 
...  return math.degrees(math.atan(x)) 
... 
>>> atan_in_degress(1) 
45.0 
>>> atan_in_degress(2) 
63.43494882292202 
>>> 
関連する問題