《VC++ MFC高斯平均引数大地主题正反算》由会员分享,可在线阅读,更多相关《VC++ MFC高斯平均引数大地主题正反算(14页珍藏版)》请在金锄头文库上搜索。
1、. .地球科学与环境工程学院实验报告书课程名:学号:姓名:指导教师:日期:优选. -目录一、目的与要求1二、实验容1三、计算公式整理1四、程序代码.4五、计算结果15六、实验体会16- .word.zl. -一、目的与要求参考椭球面是测量计算的基准面。坐标是椭球面上的根本坐标系,根据测量的观测成果如距离与方向,从原点出发,逐点计算在椭球面上的坐标;或根据两点的坐标,计算它们之间的线长度和方位角,这类计算称为问题解算或称为主题解算。问题解算的用途是多方面的,随着现代空间技术和航空航天、航海等领域的开展,问题解算尤其是反算有着更为重要的作用,因此需要熟练掌握其计算。二、实验容在测量学根底教材中,介
2、绍了高斯平均引数法与白塞尔方法的计算过程、步骤。鉴于此,需要熟练掌握高斯平均引数法与白塞尔方法解主题问题的根本方法与原理。采用所熟悉的计算机语言编程计算。计算时采用克拉索夫椭球参数,至少完成其中一种方反算,按照数据序号选取不同的数据,在计算结果中注明所选取的数据序号,选取其它数据作为无效数据处理。三、计算公式整理3.1、高斯平均引数正算计算公式S 200 km3.2、高斯平均引数正算计算公式S 200 km四、程序代码4.1、角度转换类的头文件:*pragmaonceconstdoubleclass AngleTranspublic:AngleTrans(void);AngleTrans(vo
3、id);double D,F,M,DFM,Rad,Ten;double trans1(double DFM),/度分秒形式的角度转换为弧度形式 trans2(double Rad), /弧度形式的角度转换为度分秒形式trans3(double D);/十进制度转化为弧度;4.2、角度转换类的源文件:*includeStdAfx.h*includeAngleTrans.h*includeAngleTrans:AngleTrans(void)AngleTrans:AngleTrans(void)/度分秒转换为弧度double AngleTrans:trans1(double DFM)D=floor
4、(DFM); F=floor(DFM-D)*100);M=(DFM-D-F/100)*10000;Ten=D+F/60+M/3600;Rad=Ten/180*Pi;return Rad;/弧度转换为度分秒double AngleTrans:trans2(double Rad)Ten=Rad/Pi*180;D=floor(Ten);F=(Ten-D)*60;M=(F-floor(F)*60;F=floor(F);DFM=D+F/100+M/10000;return DFM;/十进制度转化为弧度double AngleTrans:trans3(double D) Rad=D/180*Pi;retu
5、rn Rad;4.3、正反算类的头文件:*pragmaonceclass ZhengFanSuanpublic:ZhengFanSuan(void);ZhengFanSuan(void);double zB1,zL1,zA12,zS,fB1,fL1,fB2,fL2;double ZhengSuanB(double zB1,double zL1,double zA12,double zS), ZhengSuanL(double zB1,double zL1,double zA12,double zS),ZhengSuanA(double zB1,double zL1,double zA12,do
6、uble zS);double FanSuanA12(double fB1,double fL1,double fB2,double fL2),FanSuanS(double fB1,double fL1,double fB2,double fL2),FanSuanA21(double fB1,double fL1,double fB2,double fL2);4.3、正反算类的源文件:*includeStdAfx.h*includeZhengFanSuan.h*includeAngleTrans.h*includeZhengFanSuan:ZhengFanSuan(void)ZhengFan
7、Suan:ZhengFanSuan(void)AngleTrans _AngleTrans;constdouble e1= 0.0066934216622966, e2=0.006738525414683, a=6378245.0000, b= 6356863.01877,temp=pow(10.0, -10);/精度要求double Calc_M(double z) /计算Mmdouble x=a*(1-pow(e1,2)/sqrt(pow(1-pow(e1,2)*pow(sin(z),2),3);return x;double Calc_N(double z)/计算Nmdouble x=a
8、/sqrt(1-pow(e1,2)*pow(sin(z),2);return x;double Calc_t(double z)/计算tmdouble x=tan(z);return x;double Calc_yita(double z)/计算yitamdouble x=pow(e2,2)*pow(cos(z),2);return x;/正算纬度double ZhengFanSuan:ZhengSuanB(double zB1,double zL1,double zA12,double zS) double M10000, N10000, t10000, B10000,Bm10000, L1
9、0000,Lm10000, A10000,Am10000, yita10000;double _zB1=_AngleTrans.trans1(zB1), _zL1=_AngleTrans.trans1(zL1),_zA12=_AngleTrans.trans1(zA12),final; t1=tan(_zB1); yita1=pow(e2,2)*pow(cos(_zB1),2); N1=a/sqrt(1-pow(e1,2)*pow(sin(_zB1),2); M1=a*(1-pow(e1,2)/sqrt(pow(1-pow(e1,2)*pow(sin(_zB1),2),3); B0=_Angl
10、eTrans.trans3(206265/M1*zS*cos(_zA12)/3600), L0=_AngleTrans.trans3(206265*zS*sin(_zA12)/(N1*cos(_zB1)/3600), A0=L0*sin(_zB1); Bm1=_zB1+1/2*B0; Lm1=_zL1+1/2*L0; Am1=_zA12+1/2*A0;int i=1; B1=_AngleTrans.trans3(206265/M1*zS*cos(Am1)*(1+pow(zS,2)/(24*pow(N1,2)*(pow(sin(Am1),2)* (2+3*pow(t1,2)+2*pow(yita
11、1,2)+3*pow(cos(Am1),2)*pow(yita1,2)*(pow(t1,2)-1-pow(yita1,2)- 4*pow(yita1,2)*pow(t1,2)/3600);Li=_AngleTrans.trans3(206265/(N1*cos(Bm1)*zS*sin(Ami)*(1+pow(zS,2)/(24*pow(Ni,2)*(pow(ti,2)* pow(sin(Ami),2)-pow(cos(Ami),2)*(1+pow(yitai,2)-9*pow(yitai,2)*pow(ti,2)/3600);Ai=_AngleTrans.trans3(206265/Ni*zS
12、*sin(Ami)*ti*(1+pow(zS,2)/(24*pow(Ni,2)*(pow(cos(Ami),2)* (2+7*pow(yitai,2)+9*pow(yitai,2)*pow(ti,2)+5*pow(yitai,4)+pow(sin(Ami),2)*(2+pow(ti,2)+2* pow(yitai,2)/3600);while(Bi-Bi-1=temp) Bi+1=_AngleTrans.trans3(206265/Mi*zS*cos(Ami)*(1+pow(zS,2)/(24*pow(Ni,2)*(pow(sin(Ami),2)* (2+3*pow(ti,2)+2*pow(yitai,2)+3*pow(cos(Ami),2)*pow(yitai,2)*(pow(ti,2)-1-pow(yitai,2)- 4*pow(yitai,2)*pow(ti,2)/3600);Li+1=_AngleTrans.trans3(206265/(Ni*cos(Bmi)*zS*sin(Ami)*(1+pow(zS,2)/(24*pow(Ni,2)*(pow(ti,2)* pow(sin(Ami),2)-pow(cos