- 我的宝贝老婆(续) [2010/06]
- 世界四大顶级巧克力 [2010/06]
- 方位角的计算方法 [2010/06]
- 《转》男女名字相差几画就代表你们的关系,很准的哦^_^ [2010/06]
- 男人不可丢失的十种品质,你还剩几种? [2010/06]
- 我可爱的宝贝老婆 [2010/06]
- 儿呀,娘想做你家的一条狗(看完,真的很感人所以我就转了) [2010/06]
- 热24转老公老婆间的幽默道歉 [2010/06]
- 对不起,我错了…… [2010/06]
- 〖七条感情公式〗气你+逗你=喜欢你。。如果有一天,我彻底的在你的世界里消失,你会不 [2010/06]
- 幸福是什么 [2010/06]
- 自己的老婆自己疼 (转载) [2010/06]
- 十种食品让你成为零毛孔美人 (网摘) [2010/06]
- 看了五遍,笑了三天 [2010/06]
- 女孩正确的生活方式 [2010/06]
方位角的计算方法有多种,根据公式与工具有不同,现有四种计算方法:
一、测量教材上的计算方法,需要判断象限,对了解原理有一定帮助,但在实际工作中不太实用,在此不予介绍,使用此方法计算的VB或VBA代码如下:
Public Const PI = 3.14159265359
Function Pol(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double '计算直线的方位角
Dim Sub_y As Double
Sub_y = Abs(y2 - y1)
If Sub_y = 0 Then
Sub_y = 0.0000000001
End If
Pol = Atn((Abs(x2 - x1)) / Sub_y)
If x2 > x1 And y2 >= y1 Then '0-90
ElseIf x2 < x1 And y2 <= y1 Then '180-270
Pol = PI + Pol
ElseIf x2 < x1 And y2 >= y1 Then '270-360
Pol = 2 * PI - Pol
ElseIf x2 >= x1 And y2 <= y1 Then '90-180
Pol = PI - Pol
End If
End Function
二、计算器上的pol()函数,用pol(dx,dy)计算,返回两点间距离与方位角,如角度值为负+360即可,具体使用方法参照说明书上的pol()函数介绍;
三、方位角通用万能公式:
此万能公式的VB或VBA代码如下:
Public Const PI = 3.14159265359
Function Pol(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double '计算直线的方位角
Dim Sub_x As Double
Sub_x = x2 - x1 + 0.0000000001
Pol = PI - Sgn(Sub_x) * PI / 2 - Atn((y2 - y1) / Sub_x)
End Function
sgn()函数为符号函数:
sgn(x)的值只有三个:
当x小于0时sgn(x)的值为-1
当x大于0时sgn(x)的值为1
当x等于0时sgn(x)的值为0
计算器上没有此函数,在编程时可用下列代码实现此函数功能:
if x<0 then
sgn(x)=-1
elseif x>0 then
sgn(x)=1
esle
sgn(x)=0
end if
四、另一个通用公式:
S12=sqr( (x2-x1)2+(y2-y1)2)= sqr(△x2+△y2)
A12=arcsin((y2-y1)/S12)
S12为测站点1至放样点2的距离;
A12为测站点1至放样点2的坐标方位角。
x1,y1为测站点坐标;
x2,y2为放样点坐标。
按公式A12=arcsin((y2-y1)/S12)计算出的方位角都要进行象限判断后加常数才是真正的方位角。
新计算公式为:
A12=arccos(△x/S12)*sgn(△y)+360°
式中sgn()为取符号函数,改公式只需加上条件(A12>360°, A12= A12-360°)就可以计算出坐标方位角,不需要进行象限判断。
以下公式要注意如果△Yab=0,则应该把△Yab加上一个很小的数即可解决,通常编程时把△Yab+1E-10就可以,不影响方位角精度。特别说明一点,用此公式计算的值若小于0则加上360度就可得出方位角,不用判断边所在的象限。