方位角计算器

方位角计算器

什么是方位角计算器?

方位角计算器用于求出从一点前往另一点所必须行进的方向。这个方向以从北方顺时针量起的角度给出,取值在 0∘0^\circ0∘ 与 360∘360^\circ360∘ 之间。方位角 0∘0^\circ0∘ 指向正北,90∘90^\circ90∘ 指向正东,180∘180^\circ180∘ 指向正南,270∘270^\circ270∘ 指向正西。

本计算器使用平面(网格)坐标。您在平面地图或坐标网格上以一对 xxx 值和 yyy 值给出点 A 和点 B 的位置,计算器返回:

从 A 到 B 的方位角;

从 B 到 A 的反方位角;

16 方位罗盘上的罗盘方位(北、北北东、东北、东北东,等等)。

由于地图被当作平面处理,这正是学校几何、总平面图、定向越野地图和局部测量工作中使用的方位角。它不是由经纬度计算的大圆方位角——那种方位角沿着地球的曲面走,并且在途中不断变化。

关键概念

方位角——从北方顺时针量到某个方向的角度,取值范围为 0∘≤θ<360∘0^\circ \le \theta < 360^\circ0∘≤θ<360∘。

三位数方位角——通常的书写形式,总是写成三位数字:007∘007^\circ007∘、045∘045^\circ045∘、270∘270^\circ270∘。

反方位角(返回方位角)——返程方向的方位角,即从 B 到 A。它等于正向方位角加上 180∘180^\circ180∘,再绕回 000–360∘360^\circ360∘ 的范围之内。

罗盘方位——方位角所落入的那个扇区的名称。16 方位罗盘把整周分成 16 个扇区,每个 22.5∘22.5^\circ22.5∘。

网格北——在平面网格上,yyy 轴正方向为北,xxx 轴正方向为东。

计算器如何工作?

计算器首先取两点之差:

Δx=x2−x1,Δy=y2−y1\Delta x = x_2 - x_1, \qquad \Delta y = y_2 - y_1Δx=x2​−x1​,Δy=y2​−y1​

在构成角度之前,两个差值都会换算成同一个单位,因此您可以用不同单位输入四个坐标而不改变结果。方位角本身没有长度单位:它只取决于三角形的形状,而与其大小无关。

公式

数学从 xxx 轴正方向逆时针量角;导航则从北方顺时针量角。90∘−α90^\circ - \alpha90∘−α 这一步把一种约定转换成另一种:

θ=(90∘−atan2⁡(Δy,Δx)) mod 360∘\theta = \left( 90^\circ - \operatorname{atan2}(\Delta y, \Delta x) \right) \bmod 360^\circθ=(90∘−atan2(Δy,Δx))mod360∘

这里使用双参数函数 atan2⁡(Δy,Δx)\operatorname{atan2}(\Delta y, \Delta x)atan2(Δy,Δx) 而不是 arctan⁡(Δy/Δx)\arctan(\Delta y / \Delta x)arctan(Δy/Δx),因为除法会毁掉各自的符号。比值 4/34/34/3 与比值 −4/−3-4/-3−4/−3 是同一个数,但这两个方向恰好相反。函数 atan2⁡\operatorname{atan2}atan2 会读取两个符号,所以象限是对的;它还能处理 Δx=0\Delta x = 0Δx=0 的情形,而此时除法是没有定义的。

归一化到 0° 至 360° 的范围

atan2⁡\operatorname{atan2}atan2 返回 −180∘-180^\circ−180∘ 到 180∘180^\circ180∘ 的角度,所以 90∘−atan2⁡90^\circ - \operatorname{atan2}90∘−atan2 可能落在 −90∘-90^\circ−90∘ 到 270∘270^\circ270∘ 之间的任何位置。凡是偏向北方以西的方向,中间值都是负数。加上一整周就能把它拉回范围之内:

θ=θ+360∘只要 θ<0∘\theta = \theta + 360^\circ \quad \text{只要 } \theta < 0^\circθ=θ+360∘只要 θ<0∘

θ=θ−360∘只要 θ≥360∘\theta = \theta - 360^\circ \quad \text{只要 } \theta \ge 360^\circθ=θ−360∘只要 θ≥360∘

相差一整周的角度描述的是同一个方向,所以 −45∘-45^\circ−45∘、315∘315^\circ315∘ 和 675∘675^\circ675∘ 都指向西北。计算器总是报告 [0∘,360∘)[0^\circ, 360^\circ)[0∘,360∘) 中唯一的那个代表值,而 360∘360^\circ360∘ 本身总是报告为 0∘0^\circ0∘。

反方位角

θback=(θ+180∘) mod 360∘\theta_{back} = (\theta + 180^\circ) \bmod 360^\circθback​=(θ+180∘)mod360∘

正是取模运算让这一步是安全的。正向方位角 200∘200^\circ200∘ 在归一化之前给出 380∘380^\circ380∘,随后变成 020∘020^\circ020∘;正向方位角 180∘180^\circ180∘ 给出 360∘360^\circ360∘,随后变成 000∘000^\circ000∘。

罗盘方位

整周被切成 16 个 22.5∘22.5^\circ22.5∘ 的扇区。每个扇区都以其命名方向为中心,所以北覆盖从 348.75∘348.75^\circ348.75∘ 经过 360∘360^\circ360∘ 一直到 11.25∘11.25^\circ11.25∘ 的全部范围:

i=round⁡ ⁣(θ22.5∘) mod 16i = \operatorname{round}\!\left( \frac{\theta}{22.5^\circ} \right) \bmod 16i=round(22.5∘θ​)mod16

索引 iii 随后从北、北北东、东北、东北东、东、东南东、东南、南南东、南、南南西、西南、西南西、西、西北西、西北、北北西中选出名称。最后的 mod 16\bmod 16mod16 处理绕回:方位角 355∘355^\circ355∘ 舍入到索引 16,也就是重新回到索引 0,因此被正确命名为北。

计算示例

示例 1:正北

点 A 为 (0,0)(0, 0)(0,0),点 B 为 (0,10)(0, 10)(0,10)。

Δx=0,Δy=10\Delta x = 0, \qquad \Delta y = 10Δx=0,Δy=10

atan2⁡(10,0)=90∘⇒θ=90∘−90∘=0∘\operatorname{atan2}(10, 0) = 90^\circ \Rightarrow \theta = 90^\circ - 90^\circ = 0^\circatan2(10,0)=90∘⇒θ=90∘−90∘=0∘

方位角是 000∘000^\circ000∘,罗盘方位是北,反方位角是 0∘+180∘=180∘0^\circ + 180^\circ = 180^\circ0∘+180∘=180∘(南)。

示例 2:正东

点 A 为 (0,0)(0, 0)(0,0),点 B 为 (10,0)(10, 0)(10,0)。

atan2⁡(0,10)=0∘⇒θ=90∘−0∘=90∘\operatorname{atan2}(0, 10) = 0^\circ \Rightarrow \theta = 90^\circ - 0^\circ = 90^\circatan2(0,10)=0∘⇒θ=90∘−0∘=90∘

方位角是 090∘090^\circ090∘(东),反方位角是 270∘270^\circ270∘(西)。

示例 3:正南,此时反方位角正好落在 360° 边界上

点 A 为 (0,0)(0, 0)(0,0),点 B 为 (0,−10)(0, -10)(0,−10)。

atan2⁡(−10,0)=−90∘⇒θ=90∘−(−90∘)=180∘\operatorname{atan2}(-10, 0) = -90^\circ \Rightarrow \theta = 90^\circ - (-90^\circ) = 180^\circatan2(−10,0)=−90∘⇒θ=90∘−(−90∘)=180∘

方位角是 180∘180^\circ180∘(南)。反方位角是 180∘+180∘=360∘180^\circ + 180^\circ = 360^\circ180∘+180∘=360∘,归一化后为 000∘000^\circ000∘——正北,这正是返程所应有的方向。

示例 4:西北,此时中间值为负

点 A 为 (0,0)(0, 0)(0,0),点 B 为 (−3,3)(-3, 3)(−3,3)。

atan2⁡(3,−3)=135∘⇒90∘−135∘=−45∘\operatorname{atan2}(3, -3) = 135^\circ \Rightarrow 90^\circ - 135^\circ = -45^\circatan2(3,−3)=135∘⇒90∘−135∘=−45∘

θ=−45∘+360∘=315∘\theta = -45^\circ + 360^\circ = 315^\circθ=−45∘+360∘=315∘

方位角是 315∘315^\circ315∘(西北)。反方位角是 315∘+180∘=495∘315^\circ + 180^\circ = 495^\circ315∘+180∘=495∘,归一化后为 135∘135^\circ135∘(东南)。

示例 5:3-4 偏移

点 A 为 (0,0)(0, 0)(0,0),点 B 为 (3,4)(3, 4)(3,4)。

atan2⁡(4,3)=53.1301∘⇒θ=90∘−53.1301∘=36.8699∘\operatorname{atan2}(4, 3) = 53.1301^\circ \Rightarrow \theta = 90^\circ - 53.1301^\circ = 36.8699^\circatan2(4,3)=53.1301∘⇒θ=90∘−53.1301∘=36.8699∘

方位角是 036.8699∘036.8699^\circ036.8699∘。除以 22.5∘22.5^\circ22.5∘ 得到 1.6391.6391.639,舍入为索引 2,所以罗盘方位是东北。反方位角是 216.8699∘216.8699^\circ216.8699∘(西南)。

示例 6:略小于一整周的方位角

点 A 为 (0,0)(0, 0)(0,0),点 B 为 (−1,20)(-1, 20)(−1,20)——几乎正北,但稍稍偏西。

atan2⁡(20,−1)=92.8624∘⇒90∘−92.8624∘=−2.8624∘\operatorname{atan2}(20, -1) = 92.8624^\circ \Rightarrow 90^\circ - 92.8624^\circ = -2.8624^\circatan2(20,−1)=92.8624∘⇒90∘−92.8624∘=−2.8624∘

θ=−2.8624∘+360∘=357.1376∘\theta = -2.8624^\circ + 360^\circ = 357.1376^\circθ=−2.8624∘+360∘=357.1376∘

除以 22.5∘22.5^\circ22.5∘ 得到 15.8715.8715.87,舍入为 16;取 16 mod 16=016 \bmod 16 = 016mod16=0 把方向命名为北。如果没有最后这一步,索引就会落在 16 个名称的列表之外。

实际用途

学校几何——三位数方位角是标准考点,通常与正弦定理、余弦定理和比例尺作图结合考查。

定向越野与徒步——从地图上读出方位角并在指南针上设定,是最基本的导航技能;反方位角则带您原路返回。

测量与总平面图——导线的每一段都记录为从一个测站到下一个测站的方位角和距离。

航海与飞行——应舵航向就是一个方位角,而相反的(反)方位角用于对照地标核对位置。

机器人与游戏——必须朝向目标的机器人或角色所计算的正是这个角度,然后按当前航向与方位角之差转动。

注意事项

方位角与您选择的单位无关。米、千米、英尺或英里都给出同一个角度,因为只有比值 Δy:Δx\Delta y : \Delta xΔy:Δx 起作用。两点之间的距离则确实取决于单位——那要用两点间距离计算器(2D)。

两点的次序很重要。交换 A 和 B 不会给出相同的答案,而是给出反方位角。

如果两点完全重合,就没有方向可以报告,此时计算器会明确说明,而不是输出会误导人的 0∘0^\circ0∘。

在平面网格上,北指的是 yyy 的正方向(网格北)。在真实地图上,网格北、磁北和真北相差几度。把网格方位角换算成磁方位角时,要加上当地的磁偏角。

对于地球表面上的长距离,平面方位角只是一个近似。大圆航线的方位角连续变化,因此起始方位角与最终方位角并不相差 180∘180^\circ180∘。

从北方顺时针量起的方位角,与从 xxx 轴正方向逆时针量起的极角 θ\thetaθ 并不相同。直角坐标转极坐标计算器使用数学约定;两者之间的关系是 θbearing=(90∘−θpolar) mod 360∘\theta_{bearing} = (90^\circ - \theta_{polar}) \bmod 360^\circθbearing​=(90∘−θpolar​)mod360∘。

常见问题

方位角和普通角度有什么区别?

方位角是带有两条额外规则的角度:它从北方量起,并且按顺时针量。普通角度可以从任何地方开始,并朝任一方向旋转。这正是方位角总是写成三位数字的原因,所以 45∘45^\circ45∘ 要写成 045∘045^\circ045∘,不会与普通角度混淆。

如何快速求出反方位角?

如果正向方位角小于 180∘180^\circ180∘,就加上 180∘180^\circ180∘;如果它等于或大于 180∘180^\circ180∘,就减去 180∘180^\circ180∘。这两条规则在模一整周的意义下是同一条,并且总能把结果保持在 [0∘,360∘)[0^\circ, 360^\circ)[0∘,360∘) 之内。

我手算出来的方位角为什么是负数?

因为对于北方以西的每一个方向,90∘−atan2⁡(Δy,Δx)90^\circ - \operatorname{atan2}(\Delta y, \Delta x)90∘−atan2(Δy,Δx) 都会产生负数。加一次 360∘360^\circ360∘,数值就落进标准范围。−45∘-45^\circ−45∘ 的结果与 315∘315^\circ315∘ 是同一个方向。

方位角可以正好是 360° 吗?

按照约定不可以。整整一周会把您带回北方,所以这个数值报告为 000∘000^\circ000∘。范围 [0∘,360∘)[0^\circ, 360^\circ)[0∘,360∘) 包含 0∘0^\circ0∘ 但不包含 360∘360^\circ360∘,这样每个方向都只有一个名称。

这个计算器使用经纬度吗?

不使用。它工作在平面坐标网格上,其中 xxx 指向东,yyy 指向北。对于局部地图上的短距离,这与真方位角非常接近。距离达到几百千米时,地球曲率就有影响了,此时需要改用大圆公式。

像 WSW 这样的罗盘方位是什么意思?

它给方位角所落入的那个 22.5∘22.5^\circ22.5∘ 扇区命名。西南西(WSW)以 247.5∘247.5^\circ247.5∘ 为中心,覆盖 236.25∘236.25^\circ236.25∘ 到 258.75∘258.75^\circ258.75∘。这 16 个名称是精确数字的粗略而顺口的版本,这正是天气预报使用它们的原因。

两个点必须用同一单位输入吗?

不必。每个坐标都有自己的单位选择器,而且在构成角度之前每个数值都会换算成共同单位。点 A 用米、点 B 用千米输入,仍然会得到正确的方位角。

相关推荐

《贪玩蓝月》转生机制详解:数据佐证下的提升之路
第七史诗WIKI

第七史诗WIKI

08-18 👁️ 9091
越来越多的女人迷恋大叔,多少岁的男人才算大叔?3个女人告诉你