1 / 11
文档名称:

高斯投影坐标正反算VB程序.docx

格式:docx   大小:94KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

高斯投影坐标正反算VB程序.docx

上传人:cjc201601 2022/3/10 文件大小:94 KB

下载得到文件列表

高斯投影坐标正反算VB程序.docx

相关文档

文档介绍

文档介绍:高斯投影坐标正反算
学院:
班级:
学号:
姓名:
课程名称:
指导老师:
实验目的:
.了解高斯投影坐标正反算的基本思想;
.学会编写高斯正反算程序,加深了解。
实验原理:
高斯投影正算公式中应满足的三个条件:
59/180
e=Sqr(a*a-b*b)/a
m0=a*(1-e*e)
m2=e*e*m0*3/2
m4=e*e*m2*5/4
m6=m4*e*e*7/6
m8=e*e*m6*9/8
a0=m0+m2/2+m4*3/8+m6*5/16+m8*35/128
a2=m2/2+m4/2+m6*15/32+m8*7/16
a4=m4/8+m6*3/16+m8*7/32
a6=m6/32+m8/16
a8=m8/128
x_=a0*b_-a2*Sin(2*b_)/2+a4*Sin(4*b_)/4-Sin(6*b_)*a6
/6+Sin(8*b_)*a8/8
t=Tan(b_)
e1=Sqr((a*a-b*b)/(b*b))
eta=Sqr(e1*e1*Cos(b)*Cos(b))
W=Sqr(1-e*e*Sin(b_)*Sin(b_))
N=a/W
x=x_+N*Sin(b_)*Cos(b_)*l*l/2+N*Sin(b_)*Cos(b_)八3*
(5-t*t+9*eta*eta+4*eta八4)*l八4/24+N*Sin(b_)*Cos(b_)
八5*(61-58*t*t+t八4)*l八6/720
y=N*Cos(b_)*l+N*Cos(b_)八3*(1-t*t+eta*eta)*l*l*l/6
+N*Cos(b_)八5*(5-18*t*t+t八4+14*eta*eta-58*eta*eta*
t*t)*l八5/120
Text7=x
Ifdh=6Then
y_=y+500000+1000000*ik1
Else
Ifdh=3Then
y_=y+500000+1000000*ik2
Else
MsgBox"error",48,"error":ExitSub
EndIf
EndIf
Text8=y_
EndSub
Dimbf#,j%,Wf#,Vf#,Nf#,Mf#,c#,tf#,etaf#,dh%,ik%
x=Val()
y_=Val()
e=Sqr((a*a-b*b)/(a*a))
m0=a*(1-e*e)
m2=e*e*m0*3/2
m4=e*e*m2*5/4
m6=m4*e*e*7/6
m8=e*e*m6*9/8
a0=m0+m2/2+m4*3/8+m6*5/16+m8*35/128
a2=m2/2+m4/2+m6*15/32+m8*7/16
a4=m4/8+m6*3/16+m8*7/32
a6=m6/32+m8/16
a8=m8/128
bf=x/a0
Forj=1To10
bf=(x+a2/2*Sin(2*bf)-a4*Sin(4*bf)/4+a6*Sin(6*bf)/6-
a8*Sin(8*bf)/8)/a0
Nextj
e1=Sqr(a*a-b*b)/b
Vf=Sqr(1+e1*e1*Cos(bf)*Cos(bf))
Wf=Sqr(1-e*e*Sin(bf)*Sin(bf))
Nf=a/Wfc=a*a/bMf=c/Vf八3tf=Tan(bf)el=Sqr((a*a-b*b)/(b*b))etaf=Sqr(e1*el*Cos(bf)*Cos(bf))ik=Int(y_/1000000)y=y_-ik*1000000-500000
b_=bf-tf*y*y/(2*Mf*Nf)+tf*(5+3*tf*tf+etaf*etaf-9*etaf*etaf*tf*tf)*y*y*y*y/(24*Mf*Nf*Nf*Nf)+tf*(61+90*tf*tf+45*tf*tf*tf*tf)*y*y*y*y*y*y/(720*Mf*Nf*Nf*Nf*Nf*Nf)
l=y/(Nf*Cos(bf))-(1+2*tf*tf+etaf*etaf)*y*y*y/(6*Nf*Nf*Nf*Cos(bf))+(5+28*tf*tf+24*tf*tf*tf*tf+6*etaf*etaf+8*etaf*etaf*tf*tf)*y*y*y*y*y/(120*Nf*Nf*Nf*Nf*Nf*Cos(bf))dh=Val()Ifdh=6Then10=6*ik-3Else
Ifdh=3Then10=3*ik
Else
MsgBox"error",48,"error":ExitSub
EndIf
EndIf
l_=l0*+l