2016-11-29 28 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簡直就是譚inverse三角函數,它以弧度給出輸出。所以,它乘以180/pi將它轉換成度。

dist用於計算x和y之間的Euclidean distance

而對於LT(噸,角度)室溫(T,角度),我可以猜測,它們分別代表左轉,用t度,右轉用t輩分。

0

在高中(的Liceo)我研究的反三角函數,它們中的一個的arc tan(x)或簡單地atan(x) - 其含義是,其正切角度t等於x。隱含的限制是 - 無窮≤x≤+無窮和-pi/2≤t≤pi/2。

那麼,什麼是atan2(x, y)?這是一個類似的功能,返回角度爲t,-pi≤t≤pi,包含在水平方向上的單位矢量和矢量OP之間,包含在P=(x,y)之間。

爲什麼這個功能被稱爲atan2?因爲它有兩個參數(atan只有一個參數),因爲你可以使用atan

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

,你必須基於對xy標誌來選擇特定的解決方案計算atan2 - 這個邏輯是沒有困難的,但有人(可能是第一批FORTRAN編譯器的實現者?)認爲這是一個非常普遍的問題,因此它本身就是一個功能。

atan2另一個特點是,當x==0是完全可以避免後面的溢出,