首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python math.degrees():弧度轉角度完整教學

     編輯:更多程式設計知識

在三角函數運算、幾何計算或物理模擬中,經常需要在「弧度」與「角度」之間轉換。Python 標準庫 math 模組提供 degrees() 與 radians() 兩個函數,分別處理弧度→角度與角度→弧度。本文詳細說明 degrees() 的用法、參數、回傳值與常見應用場景。

函數簽名

math.degrees(x: float) -> float
  • 參數:x - 弧度值(浮點數)。
  • 回傳:對應的角度值(浮點數)。
  • 公式:degrees = x * 180 / π。

基本範例


import math

print(math.degrees(0))           # 0.0
print(math.degrees(math.pi))     # 180.0
print(math.degrees(math.pi/2))   # 90.0
print(math.degrees(math.pi/4))   # 45.0
print(math.degrees(1))           # 57.29577951308232
print(math.degrees(-math.pi))    # -180.0

常見應用場景

1. 三角函數結果轉為人類易讀角度


# 計算向量夾角
import math
def angle_between(v1, v2):
    dot = v1[0]*v2[0] + v1[1]*v2[1]
    norm1 = math.hypot(v1[0], v1[1])
    norm2 = math.hypot(v2[0], v2[1])
    rad = math.acos(dot / (norm1 * norm2))
    return math.degrees(rad)

print(angle_between((1, 0), (0, 1)))  # 90.0 度

2. 繪圖庫座標轉換

某些繪圖庫(如 SVG、Canvas)旋轉參數以角度為單位,而 math.sin/cos 需弧度:


angle_deg = 45
angle_rad = math.radians(angle_deg)   # 反向轉換
x = math.cos(angle_rad)
y = math.sin(angle_rad)

3. GPS/導航方位角處理


# 方位角通常以度為單位(0°=北,90°=東)
bearing_rad = math.atan2(dx, dy)      # 取得弧度
bearing_deg = math.degrees(bearing_rad) % 360

效能與精度提示

  • degrees() 內部僅做一次乘法與除法,效能極高,可放心在迴圈中大量呼叫。
  • 浮點數精度限制:math.degrees(math.pi) 回傳 180.0,但 math.degrees(math.pi/3) 可能為 59.99999999999999。顯示時建議用 round(val, 10) 或格式化字串 f'{val:.2f}°'。
  • NumPy 陣列操作請用 np.degrees(arr),向量化更高效。

對照表:常用弧度↔角度對照

弧度角度備註
00°
π/630°
π/445°
π/360°
π/290°直角
2π/3120°
3π/4135°
5π/6150°
π180°平角
3π/2270°
2π360°圓周角

一鍵轉換小工具


import math, sys

def rad2deg(rad):
    return math.degrees(rad)

def deg2rad(deg):
    return math.radians(deg)

if __name__ == '__main__':
    if len(sys.argv) != 3:
        print('用法: python angle_conv.py [rad|deg] 數值')
        sys.exit(1)
    mode, val = sys.argv[1], float(sys.argv[2])
    if mode == 'rad':
        print(f'{val} rad = {rad2deg(val):.6f}°')
    elif mode == 'deg':
        print(f'{val}° = {deg2rad(val):.6f} rad')
    else:
        print('模式錯誤,請用 rad 或 deg')

執行範例:


$ python angle_conv.py rad 1.5708
1.5708 rad = 90.000043°
$ python angle_conv.py deg 45
45.0° = 0.785398 rad

掌握 math.degrees() 與 math.radians(),即可在數學計算與工程應用中自如切換角度單位,避免單位錯誤導致的邏輯 Bug。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved