假設您在 0.0 到 1.0 的范圍內有兩個坐標。A: (0.12, 0.75) B: (0.43, 0.97) 你想從 A 點走到 B 點。你將如何在 python 中計算角度。北為 0,南為 180。
uj5u.com熱心網友回復:
如果你想從北方得到它,那么你去:
def get_angle(x1,y1,x2,y2):
return math.degrees(math.atan2(y2-y1, x2-x1))
這有效,因為
tan(x) = Opposite/Adjacent;
Opposite/Adjacent = (x2-x1)/(y2-y1);
x=atan(x2-x1, y2-y1)
是的atan倒數。tan為了不僅獲得方向,而且獲得真正的方向,我們使用該atan2函式代替,因為它可以獲得從 -pi (-180) 到 pi (180) 的使用天使,而atan只能產生 -pi/2 (- 90) 和 pi/2 (90)。
一個問題: 的引數順序atan2是 y 差異first,所以它是atan2(dy, dx),不是 atan2(dx, dy)。
uj5u.com熱心網友回復:
我將計算 x 的差異和 y 的差異,并使用模塊中的math.atan2(y/x)函式math。然后只需將弧度轉換為度數并加上 90o。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/490660.html
上一篇:動態類名的Apify選擇器
