2016-11-29 7 views
0
def diagonal(t, x, y): 
    """Makes a diagonal line to the given x, y offsets and return""" 
    from math import atan2, sqrt, pi 
    angle = atan2(y, x) * 180/pi 
    dist = sqrt(x**2 + y**2) 
    lt(t, angle) 
    fdbk(t, dist) 
    rt(t, angle) 

atan2メソッドは何をしているのか分かりません。どのように角度を計算していますか?そして、なぜ距離を計算する別の方法がありますか?Pythonでどのように対角線に移動するのですか?

+4

「私はATAN2方法をするのか理解していないが、」あなたはドキュメントを見たことがありますか? –

+0

コードを適切なインデントで記述し、可能であればコードのソースも引用してください。 – ABcDexter

+1

https://docs.python.org/3/library/math.html#math.atan2 –

答えて

1

Atan2は単なるTanで、出力をラジアン単位で与える三角関数です。したがって、それを度に変換するために180/pi倍されます。

distは、xとyの間でEuclidean distanceを計算します。

LT(T、角度)室温(T、角度)のために、私は彼らがそれぞれのt degressによってトン度、右折で、左折のために立つことを推測することができます

。高校(リセウ)において

0

Iは、その一つarc tan(x)又は単にatan(x)、逆三角関数を検討 - であるその意味、その接線xに等しい角度t。暗黙の制限は、-infinity≦x≤+無限大と-pi/2≦t≦pi/2です。

だから、atan2(x, y)とは何ですか? t、水平方向の単位ベクトルとベクトルOPの間に含まれ、P=(x,y)を含む-pi≦t≦piを返す同様の関数です。

なぜこの機能がatan2と呼ばれていますか?これは、2つの引数(atanは単一の引数を持っている)を持っているので、あなたがxyの兆候に基づいて、特定のソリューションを選択する必要がatan

atan2(x, y) <equiv> atan(y/x) or atan(y/x) ± pi 

を使用してatan2を計算することができますので、 - この論理は全く困難ではありませんが、誰か(おそらく最初のFORTRANコンパイラの実装者?)は、それがそれ自身の機能に値するというよくある質問であると判断しました。

atan2のもう一つの特徴は、x==0が完全に回避されたときに、次のオーバーフロー、

関連する問題