import math
def azimuthangle(x1, y1, x2, y2):
""" 已知两点坐标计算角度 -
:param x1: 原点横坐标值
:param y1: 原点纵坐标值
:param x2: 目标点横坐标值
:param y2: 目标纵坐标值
"""
angle = 0.0
dx = x2 - x1
dy = y2 - y1
if x2 == x1:
angle = math.pi / 2.0
if y2 == y1:
angle = 0.0
elif y2 < y1:
angle = 3.0 * math.pi / 2.0
elif x2 > x1 and y2 > y1:
angle = math.atan(dx / dy)
elif x2 > x1 and y2 < y1:
angle = math.pi / 2 + math.atan(-dy / dx)
elif x2 < x1 and y2 < y1:
angle = math.pi + math.atan(dx / dy)
elif x2 < x1 and y2 > y1:
angle = 3.0 * math.pi / 2.0 + math.atan(dy / -dx)
return angle * 180 / math.pi
角度走向看下图:

该博客介绍了如何使用 Python 的 `azimuthangle` 函数计算两点之间的角度。函数接受四个参数,即两个点的横纵坐标,并根据坐标计算出角度。文章详细阐述了不同坐标情况下角度的计算逻辑,包括直角、水平和垂直情况,以及不同象限的角度计算。此函数适用于地理定位、图形学或任何需要计算方向或角度的场景。
7026





