已知 A 点和 B 点的平面坐标,坐标反方位角就是把直线 AB 的方位角反算出来。做法很直接:先用 B 点坐标减去 A 点坐标,得到 X 差和 Y 差,再用 atan2(Y 差, X 差) 算角度,并把角度整理成 0° 到 360° 的顺时针方位角。若问的是反方向方位角,例如 BA 对 AB,直接在原方位角上加 180°,超过 360° 就减 360°。
核心约定
计算坐标反方位角时,先统一这几个约定,后续公式就能直接套用。
- • X 表示北坐标,Y 表示东坐标。
- • 方位角从正北开始顺时针计量。
- • 用目标点减起点,得到坐标增量。
- • 最终方位角取 0° 到 360°。
- • 若需要反方向,使用正反方位角相差 180° 的关系。
核心公式
设起点 A 的坐标为 (X_A, Y_A),终点 B 的坐标为 (X_B, Y_B)。
| 项目 | 表达方式 |
|---|---|
| 北方向增量 | ΔX = X_B - X_A |
| 东方向增量 | ΔY = Y_B - Y_A |
| 正方向方位角 | α_AB = mod(atan2(ΔY, ΔX), 360°) |
| 反方向方位角 | α_BA = mod(α_AB + 180°, 360°) |
为什么要用坐标差
方位角描述的是“从正北方向顺时针转到目标线”的角度。两个点的坐标差刚好给出这条目标线在 X 北方向上的分量和 Y 东方向上的分量。
使用 atan2 的好处是它一次判断方向区域,不需要手工分段。再用 mod 把角度整理到 0° 到 360°,结果就和测绘常用方位角格式一致。
计算步骤
- 1、取起点 A 的坐标。
- 2、取终点 B 的坐标。
- 3、计算 ΔX = X_B - X_A。
- 4、计算 ΔY = Y_B - Y_A。
- 5、计算 α_AB = atan2(ΔY, ΔX)。
- 6、将结果转换为角度,并整理到 0° 到 360°。
- 7、若需要反方向方位角 α_BA,在 α_AB 上加 180° 并整理到 0° 到 360°。
象限整理方法
如果不使用 atan2,可以用普通 arctan 配合方向判断。
| 直线朝向 | ΔX | ΔY | 手工计算方式 | 示例 | ||||
|---|---|---|---|---|---|---|---|---|
| 正北 | >0 | =0 | 0° | 0° | ||||
| 东北 | >0 | >0 | arctan(ΔY / ΔX) | 38.66° | ||||
| 正东 | =0 | >0 | 90° | 90° | ||||
| 东南 | <0 | >0 | 180° - arctan(ΔY / | ΔX | ) | 135° | ||
| 正南 | <0 | =0 | 180° | 180° | ||||
| 西南 | <0 | <0 | 180° + arctan( | ΔY | / | ΔX | ) | 225° |
| 正西 | =0 | <0 | 270° | 270° | ||||
| 西北 | >0 | <0 | 360° - arctan( | ΔY | / ΔX) | 315° |
工具计算方式
Excel 公式
假设:
| 单元格 | 含义 |
|---|---|
| B2 | X_A |
| C2 | Y_A |
| D2 | X_B |
| E2 | Y_B |
可输入:
```excel
=MOD(DEGREES(ATAN2(E2-C2,D2-B2)),360)
```
这个公式计算的是 A 到 B 的正方向方位角。
计算器或编程
常用写法:
```python
import math
delta_x = x_b - x_a
delta_y = y_b - y_a
alpha = math.degrees(math.atan2(delta_y, delta_x))
alpha = alpha % 360
```
得到的 alpha 就是 A 到 B 的坐标方位角。
示例一:东北方向
已知:
| 点 | X | Y |
|---|---|---|
| A | 1000 | 1000 |
| B | 1100 | 1080 |
计算:
```text
ΔX = 1100 - 1000 = 100
ΔY = 1080 - 1000 = 80
α_AB = atan2(80, 100) = 38.66°
```
反方向:
```text
α_BA = 38.66° + 180° = 218.66°
```
示例二:正东方向
已知:
| 点 | X | Y |
|---|---|---|
| A | 1000 | 1000 |
| B | 1000 | 1500 |
计算:
```text
ΔX = 1000 - 1000 = 0
ΔY = 1500 - 1000 = 500
α_AB = atan2(500, 0) = 90°
```
反方向:
```text
α_BA = 90° + 180° = 270°
```
正反方位角换算
同一条直线有两个方向,正反方位角相差 180°。
| 正方位角 | 反方位角计算 | 反方位角 |
|---|---|---|
| 30° | 30° + 180° | 210° |
| 90° | 90° + 180° | 270° |
| 230° | 230° + 180° = 410°,再减 360° | 50° |
| 350° | 350° + 180° = 530°,再减 360° | 170° |
通用公式:
```text
α_BA = mod(α_AB + 180°, 360°)
```
复核清单
- • 核对起点和终点的顺序。
- • 核对 X、Y 分别代表北坐标和东坐标。
- • 核对坐标系统使用同一套成果。
- • 核对角度单位设置为度。
- • 核对最终结果整理到 0° 到 360°。
- • 核对反方向方位角加 180° 后重新归整。
- • 按项目要求保留小数位数。
免责声明:本文用于技术学习、作业复核和工具计算参考。实际工程计算请以项目坐标成果、坐标系定义、角度单位设置和现行技术文件为准。


