方位角计算

平面曲线要素计算

方位角计算

由于测绘坐标系和数学坐标系之间不同,测绘坐标系中XY方向颠倒,但是旋转方向并没有发生变化,该计算流程比较简单,就是通常使用的actan,但是因为四个象限的原因,所以每次单独计算非常复杂,所以自己写了一个excel函数进行解算。

计算原理

如图所示,测绘中方位角X从北方向开始

在这里插入图片描述

存在1和2两个点,其中1是起点,2是终点,现在计算从1到2的方位角,其思路是先计算1到2的坐标差值比的反正切;然后根据delt的正负计算象限,再反算对应方位角。
[ Δ X = x 2 − x 1 ] [ \Delta X = x_2 - x_1 ] [ΔX=x2x1]
[ Δ Y = y 2 − y 1 ] [ \Delta Y = y_2 - y_1 ] [ΔY=y2y1]
[ R = arctan ⁡ ( ∣ Δ Y ∣ ∣ Δ X ∣ ) ] [ R = \arctan\left(\frac{| \Delta Y |}{| \Delta X |}\right) ] [R=arctan(∣ΔX∣ΔY)]

根据ΔX和ΔY判断象限,并计算方位角

ΔXΔY象限坐标方位角
++IR
-+II180-R
--III180+R
+-IV360-R

EXCEL中VBA实现

平时使用excel计算经常是使用手敲公式,然后向下填充实现,但是对于复杂计算并不方便,可以使用EXCEl中自带的VBA进行实现

添加VBA

再excel中自带VBA,需要手动开启:

“文件”->“选项”->“自定义功能区”,主选项卡下“开发工具”前面打勾
在这里插入图片描述

开启VBA

菜单栏 -> 开发工具 -> Visual Basic

编程

菜单栏“插入”->“模块”,然后在代码窗口中编写代码

方位角求解
Function CalculateAngle(x1, y1, x2, y2)
    
    ' 计算x和y方向上的差值
    deltaX = x2 - x1
    deltaY = y2 - y1
    
    ' 使用反正切函数计算方位角(以弧度为单位)
    
    R = Atn(Abs(deltaY / deltaX))
    
    ' 正负值计算象限
    If deltaX > 0 And deltaY > 0 Then
    R = R
    End If
    
    If deltaX < 0 And deltaY > 0 Then
    R = WorksheetFunction.Pi - R
    End If
    
    If deltaX < 0 And deltaY < 0 Then
     
     R = WorksheetFunction.Pi + R
    End If
     
    If deltaX > 0 And deltaY < 0 Then
     
     R = 2 * WorksheetFunction.Pi - R
     
    End If
     
    CalculateAngle = R * 180 / WorksheetFunction.Pi
    
End Function

代码比较简单,优化if的事就不在这里说了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值