下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高斯投影正反算姓名: 王义文 班级:四班 学号:2009301610135程序说明:本程序基于MFC基本对话框,由于MFC程序构建框架的代码冗长,打印出来恐怕影响阅读效率,所以下面的代码是经过剔除之后的一些核心代码,希望老师谅解!界面关联变量说明:纬度值的度、分、秒分别与B_DD,B_MM,B_SS相关联,缺省项自动设定为0。 经度值的度、分、秒分别与L_DD,L_MM,L_SS相关联,同上。L0_DD则表示为L0的值,单位:度。x,y分别与坐标值关联,且y为加500KM以后的值。单位:米。m_keshi=1是克氏椭球,=0为IAG椭球,且此处不能缺省。m_zheng=1表示正算,=0为反算,
2、且此处不能缺省。核心代码说明:void C高斯投影正反算4Dlg:OnBnClickedRadio3() /此处为正算的设定,如果正算,设定输入焦 点在B_DD。x,y为只读项。m_zheng=1; (CEdit*)GetDlgItem(IDC_EDIT1)->SetFocus(); (CEdit*)GetDlgItem(IDC_EDIT1)->SetReadOnly(FALSE); (CEdit*)GetDlgItem(IDC_EDIT2)->SetReadOnly(FALSE); (CEdit*)GetDlgItem(IDC_EDIT3)->SetReadOnly(
3、FALSE); (CEdit*)GetDlgItem(IDC_EDIT4)->SetReadOnly(FALSE); (CEdit*)GetDlgItem(IDC_EDIT5)->SetReadOnly(FALSE); (CEdit*)GetDlgItem(IDC_EDIT6)->SetReadOnly(FALSE); (CEdit*)GetDlgItem(IDC_EDIT7)->SetReadOnly(FALSE); (CEdit*)GetDlgItem(IDC_EDIT8)->SetReadOnly(); (CEdit*)GetDlgItem(IDC_EDIT
4、9)->SetReadOnly();void C高斯投影正反算4Dlg:OnBnClickedRadio4() /反算的设定:设置输入焦点在L0_DD,且B, L的角度值为只读。void C高斯投影正反算4Dlg:OnBnClickedRadio1()void C高斯投影正反算4Dlg:OnBnClickedRadio2() m_keshi=0; /IAG m_keshi=1; /克氏 m_zheng=0; (CEdit*)GetDlgItem(IDC_EDIT7)->SetFocus(); (CEdit*)GetDlgItem(IDC_EDIT1)->SetReadOnly
5、(); (CEdit*)GetDlgItem(IDC_EDIT2)->SetReadOnly(); (CEdit*)GetDlgItem(IDC_EDIT3)->SetReadOnly(); (CEdit*)GetDlgItem(IDC_EDIT4)->SetReadOnly(); (CEdit*)GetDlgItem(IDC_EDIT5)->SetReadOnly(); (CEdit*)GetDlgItem(IDC_EDIT6)->SetReadOnly(); (CEdit*)GetDlgItem(IDC_EDIT7)->SetReadOnly(FALSE
6、); (CEdit*)GetDlgItem(IDC_EDIT8)->SetReadOnly(FALSE); (CEdit*)GetDlgItem(IDC_EDIT9)->SetReadOnly(FALSE);void C高斯投影正反算4Dlg:OnBnClickedButton1() /核心算法 double t, ita2, W, N; t = tan(dfBR); ita2 = e12*cos(dfBR)*cos(dfBR); W = sqrt(1-e2*sin(dfBR)*sin(dfBR); double a0, a2, a4, a6; a0 = m0 + m2/2 + m
7、4*3/8 + m6*5/16 + m8*35/128; a2 = m2/2 + m4/2 + m6*15/32 + m8*7/16; a4 = a6 = m4/8 + m6*3/16 + m8*7/32; m6/32 + m8/16; double m0, m2, m4, m6, m8; m0 = a*(1-e2); m2 = e2*m0*3/2; m4 = e2*m2*5/4; m6 = e2*m4*7/6; m8 = e2*m6*9/8; double a, b, e2, e12; if (m_keshi = 1) else e2 = (a*a-b*b)/(a*a); e12 = (a*
8、a-b*b)/(b*b); a = 6378140.0; b = 6356755.2881575287; a = 6378245.0; b = 6356863.0187730473; double dfRou = 3600*180/PI; UpdateData(); double dfBR,dfDeltaLR; if (m_zheng = 1) int nLC = (int)(L_DD+3)/6.0 + 0.5); dfBR = (3600.0*B_DD +60.0*B_MM+B_SS)/dfRou; dfDeltaLR = (3600.0*L_DD +60.0*L_MM+L_SS -3600
9、.0*(L0_DD)/dfRou;N = a/W; double X, m; X = a0*dfBR - sin(dfBR)*cos(dfBR)*(a2-a4+a6) + (2*a4-a6*16/3)*pow(sin(dfBR),2) + a6*pow(sin(dfBR),4)*16/3);x = X + N*t*(0.5 + (5 -t*t +9*ita2 +4*ita2)/24 + (61- 58*t*t y = N*(1 + (1 -t*t +ita2)/6 + (5 -18*t*t +t*t*t*t +4*ita2 +t*t*t*t)*m*m/720)*m*m)*m*m); m = c
10、os(dfBR)*dfDeltaLR; -58*ita2*t*t)*m*m/120)*m*m)*m);double H = y/Nf, dfBD, dfLD; dfBR = Bf - 0.5*Vf2*tf*(H*H - (5 +3*tf*tf +itaf2 -9*itaf2*tf*tf)*pow(H,4)/12 + (61 double tf, itaf2, Wf, Nf, Vf2; tf = tan(Bf); itaf2 = e12*cos(Bf)*cos(Bf); Wf = sqrt(1-e2*sin(Bf)*sin(Bf); Nf= a/Wf; Vf2 = 1+itaf2; y=y-50
11、0000; double Bf = x/a0, fBf; fBf = sin(Bf)*cos(Bf)*(a2 -a4 +a6) + (2*a4 -a6*16/3)*pow(sin(Bf),2) else y += 500000; +a6*pow(sin(Bf),4)*16/3); while (fabs(Bf - (x+fBf)/a0) > 1e-16) Bf = (x + fBf)/a0; fBf = sin(Bf)*cos(Bf)*(a2 -a4 +a6) + (2*a4 -a6*16/3)*pow(sin(Bf),2) +a6*pow(sin(Bf),4)*16/3); +90*t
12、f*tf +45*tf*tf)*pow(H,6)/360);dfDeltaLR = (H - (1 +2*tf*tf +itaf2)*pow(H,3)/6 + (5 +28*tf*tf +24*tf*tf +6*itaf2 +8*itaf2*tf*tf)*pow(H,5)/120)/cos(Bf);dfBD = dfBR*180/PI;B_DD = (int)(dfBD); B_MM = (int)(dfBD -B_DD)*60); B_SS = (dfBD -B_DD)*60 -B_MM)*60; int nLC=(L0_DD+3)/6; dfLD = (nLC*6-3) + dfDelta
13、LR*180/PI; L_DD = (int)(dfLD); L_MM = (int)(dfLD -L_DD)*60); L_SS = (dfLD -L_DD)*60 -L_MM)*60; y += 500000; if (fabs(B_SS-60) < 0.00005) if (fabs(L_SS-60) < 0.00005) L_SS = 0.0; L_MM +=1; if (L_MM = 60) L_MM = 0; L_DD +=1; B_SS = 0.0; B_MM +=1; if (B_MM = 60) B_MM = 0; B_DD +=1; UpdateData(FALSE); UpdateData(FALSE);HBRUSH C高斯投影正反算4Dlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)/ TODO: 在此更改 DC 的任何特性 if (pWnd-> GetDlgCtrlID() = IDC_STATIC15) HBRUSH h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学五年级小数乘除法计算题汇编
- 科创板开通知识测试参考答案
- 语文试卷 天津市滨海新区五所重点中学高三毕业班联考语文试卷
- 保险行业助理的工作总结和技能要求
- 骨骼疾病护理工作总结
- 家具家居行业技术尝试改造
- 生物医药行业技术工作总结
- 纸制品行业业务员工作总结
- 游戏界面设计师的交互体验和游戏设计
- 《机械防烟方式》课件
- 网络安全保密教育知识普及培训课件
- 小学语文-部编版四年级语文上册第六单元习作:记一次游戏教学设计学情分析教材分析课后反思
- 面向5G网络建设的站点供电技术应用与发展
- 装饰公司与项目经理合作协议
- 接待上级领导工作总结
- 《新时代高校劳动教育理论与实践教程》教案 第9课 强化劳动安全意识
- 小学数学项目化教学这:基于教学评一体化的大单元整体设计《测量》
- 洗涤剂常用原料
- ACC-AHA-HRSICD治疗适应证指南
- 曼陀罗中毒课件
- 共享单车电动车加盟城市代理协议模板
评论
0/150
提交评论