對於平面座標系,任一射線OP與x軸夾角θ
的範圍,可以取[0,2π)或(-&pi ;,π],如無特殊說明,我們統一使用後者。
將笛卡爾空間座標系中的點Pc = ( x , y , z )
表示成球體座標系中的形式Ps = ( θ , ϕ , r )
。
其中
##根據球坐標的定義,要求θ∈[−π,π],ϕ∈[−π/2,π/2] ,r∈[0 , ∞)
。 對於import math a = math.atan2(400,-692.820) # 2.6179936760992044 angle = a/math.pi*180 # 149.99998843242386
atan 函數的使用atan(delta_y / delta_x)<pre class="brush:py;">import math
delta_y = 400
delta_x = -692.820
if delta_x == 0:
b = math.pi / 2.0
angle = b/math.pi*180
if delta_y == 0:
angle = 0.0
elif delta_y < 0:
angle -= 180
else:
b = math.atan(delta_y/delta_x)
angle = b/math.pi*180
if delta_y > 0 and delta_x < 0:
angle = angle + 180
if delta_y < 0 and delta_x < 0:
angle = angle - 180
b,angle
# (-0.5235989774905888, 149.99998843242386)</pre>
atan和atan2 的異同
參數的個數不同
如果delta_x等於0,atan2仍然可以計算,但是atan 則需要提前判斷,否則就會導致程式出錯
象限的處理
當點(b,a) 落入第一象限(b>0, a>0)時,atan2(b,a)的範圍是
0 ~ pi /2
當b/a > 0 時,atan(b/a)取值範圍是
0 ~ pi/2
以上是Python如何實作arctan換算角度的詳細內容。更多資訊請關注PHP中文網其他相關文章!