ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:173.69KB ,
资源ID:2158066      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2158066.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VC++ MFC高斯平均引数大地主题正反算.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

VC++ MFC高斯平均引数大地主题正反算.docx

1、VC+ MFC高斯平均引数大地主题正反算 地球科学与环境工程学院实验报告书课程名: 学 号: 姓 名: 指导老师: 日 期: 四、 程序代码.4一、目的与要求参考椭球面是大地测量计算的基准面。大地坐标是椭球面上的基本坐标系,根据大地测量的观测成果(如距离与方向),从大地原点出发,逐点计算在椭球面上的大地坐标;或根据两点的大地坐标,计算它们之间的大地线长度和大地方位角,这类计算称为大地问题解算(或称为大地主题解算)。大地问题解算的用途是多方面的,随着现代空间技术和航空航天、航海等领域的发展,大地问题解算(尤其是大地反算)有着更为重要的作用,因此需要熟练掌握其计算。二、实验内容在大地测量学基础教材

2、中,介绍了高斯平均引数法与白塞尔方法的计算过程、步骤。鉴于此,需要熟练掌握高斯平均引数法与白塞尔方法解大地主题问题的基本方法与原理。采用所熟悉的计算机语言编程计算。计算时采用克拉索夫椭球参数,至少完成其中一种方法正反算,按照数据序号选取不同的已知数据,在计算结果中注明所选取的数据序号,选取其它数据作为无效数据处理。三、计算公式整理3.1、高斯平均引数正算计算公式(S 200 km) 3.2、高斯平均引数正算计算公式(S 200 km) 四、程序代码4.1、角度转换类的头文件:#pragma onceconst double Pi=3.141592653589793;class AngleTra

3、nspublic: AngleTrans(void); AngleTrans(void);double D,F,M,DFM,Rad,Ten;double trans1(double DFM), /度分秒形式的角度转换为弧度形式 trans2(double Rad), /弧度形式的角度转换为度分秒形式 trans3(double D); /十进制度转化为弧度;4.2、角度转换类的源文件:#include StdAfx.h#include AngleTrans.h#includeAngleTrans:AngleTrans(void)AngleTrans:AngleTrans(void)/度分秒转换

4、为弧度double AngleTrans:trans1(double DFM) D=floor(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;/十进

5、制度转化为弧度double AngleTrans:trans3(double D) Rad=D/180*Pi; return Rad;4.3、正反算类的头文件:#pragma onceclass 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,doubl

6、e zA12,double zS), ZhengSuanA(double zB1,double zL1,double zA12,double 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、正反算类的源文件:#include StdAfx.h#include ZhengFanSu

7、an.h#includeAngleTrans.h#includeZhengFanSuan:ZhengFanSuan(void)ZhengFanSuan:ZhengFanSuan(void)AngleTrans _AngleTrans;const double e1= 0.0066934216622966, e2=0.006738525414683, a=6378245.0000, b= 6356863.01877, temp=pow(10.0, -10);/精度要求double Calc_M(double z) /计算Mm double x=a*(1-pow(e1,2)/sqrt(pow(1-

8、pow(e1,2)*pow(sin(z),2),3); return x;double Calc_N(double z) /计算Nm double x=a/sqrt(1-pow(e1,2)*pow(sin(z),2); return x;double Calc_t(double z) /计算tm double x=tan(z); return x;double Calc_yita(double z) /计算yitam double x=pow(e2,2)*pow(cos(z),2); return x;/正算纬度double ZhengFanSuan:ZhengSuanB(double zB1

9、,double zL1,double zA12,double zS) double M10000, N10000, t10000, B10000,Bm10000, L10000,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)

10、*pow(sin(_zB1),2); M1=a*(1-pow(e1,2)/sqrt(pow(1-pow(e1,2)*pow(sin(_zB1),2),3); B0=_AngleTrans.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(2062

11、65/M1*zS*cos(Am1)*(1+pow(zS,2)/(24*pow(N1,2)*(pow(sin(Am1),2)* (2+3*pow(t1,2)+2*pow(yita1,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(

12、Ami),2)*(1+pow(yitai,2)-9*pow(yitai,2)*pow(ti,2)/3600); Ai=_AngleTrans.trans3(206265/Ni*zS*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.trans

13、3(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)-

14、pow(cos(Ami),2)*(1+pow(yitai,2)-9*pow(yitai,2)*pow(ti,2)/3600); Ai+1=_AngleTrans.trans3(206265/Ni*zS*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); Bmi+1=_zB1+1/2*Bi; Lmi+1=_zL1+1/

15、2*Li; Ami+1=_zA12+1/2*Ai; Mi+1=Calc_M(Bi); Ni+1=Calc_N(Ni); yitai+1=Calc_yita(yitai); ti+1=Calc_t(ti); final=Bi; i+; double Final=final+_zB1; return _AngleTrans.trans2(Final);/正算经度double ZhengFanSuan:ZhengSuanL(double zB1,double zL1,double zA12,double zS) double M10000, N10000, t10000, B10000,Bm1000

16、0, L10000,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);

17、B0=_AngleTrans.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

18、*pow(yita1,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(2

19、06265/Ni*zS*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); if(Li-Li-1=temp) while(Li-Li-1=temp) Bi+1=_AngleTrans.trans3(206265/Mi*zS*cos(Ami)*(1+pow(zS,2)/(24*pow(Ni,2)*(pow(sin(Am

20、i),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(Ami),2)*(1+pow(yitai,2)-9*pow(yitai,2)*pow(ti,2)/3600)

21、; Ai+1=_AngleTrans.trans3(206265/Ni*zS*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); Bmi+1=_zB1+1/2*Bi; Lmi+1=_zL1+1/2*Li; Ami+1=_zA12+1/2*Ai; Mi+1=Calc_M(Bi); Ni+1=Calc_N(Ni); yi

22、tai+1=Calc_yita(yitai); ti+1=Calc_t(ti); final=Li; i+; else final=Li; double Final=final+_zL1; return _AngleTrans.trans2(Final);/正算大地方位角double ZhengFanSuan:ZhengSuanA(double zB1,double zL1,double zA12,double zS) double M100, N100, t100, B100,Bm100, L100,Lm100, A100,Am100, yita10000; double _zB1=_Ang

23、leTrans.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=_AngleTrans.trans3(206265/M1*zS*cos(_zA12)/3600), L0=_Angle

24、Trans.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(yita1,2)+3*pow(cos(Am1),2)*pow(yita1,2)*(pow(t1,2)-1-pow(

25、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*sin(Ami)*ti*(1+pow(zS,2)/(24*pow(Ni,2)*(pow(cos(Am

26、i),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(Ai-Ai-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(Ami),2)*(1+pow(y

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2