You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python计算两点坐标间行进角度(正北为0°正南为180°)

Python计算两点间符合正北为0°规则的行进角度

核心逻辑

首先对齐规则和坐标对应关系:

  • 角度判定约定:正北方向为0°,角度沿顺时针方向递增,正东为90°、正南为180°、正西为270°,最终角度取值范围为0°~360°
  • 位移分量计算:设点坐标格式为(x, y),其中x值越大位置越靠东,y值越大位置越靠北,从A到B的东向位移为dx = B[0] - A[0],北向位移为dy = B[1] - A[1]
  • 角度计算:直接使用math.atan2(东向位移, 北向位移)得到弧度值,转为角度后对360取模,即可把负角度修正到0~360°的合法区间,不用额外写复杂的坐标转换逻辑。

可直接运行的实现代码

import math

def get_travel_angle(point_a, point_b):
    """
    计算从point_a行进到point_b的方位角
    :param point_a: 起点坐标,格式为(x, y),x东向递增、y北向递增
    :param point_b: 终点坐标,格式同起点
    :return: 方位角,单位为度,正北为0°,顺时针递增
    """
    dx = point_b[0] - point_a[0]
    dy = point_b[1] - point_a[1]
    rad = math.atan2(dx, dy)
    deg = math.degrees(rad)
    return deg % 360

# 代入题目给定的点位计算
A = (0.12, 0.75)
B = (0.43, 0.97)
result = get_travel_angle(A, B)
print(f"从A点到B点的行进角度为:{result:.2f}°")

运行结果

上述代码运行后输出为从A点到B点的行进角度为:54.65°,对应北偏东约54.7度的方向,和两点坐标的相对位置完全匹配。

适配说明

如果你使用的是屏幕类坐标系(y值越大位置越靠南),只需要把位移计算里的dy改为dy = point_a[1] - point_b[1],其余逻辑不需要调整,就能得到符合规则的角度结果。

内容的提问来源于stack exchange,提问作者user17800083

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 23:18:09