电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

测绘程序设计(VS2008)实验报告高斯投影正反算VIP免费

测绘程序设计(VS2008)实验报告高斯投影正反算_第1页
测绘程序设计(VS2008)实验报告高斯投影正反算_第2页
测绘程序设计(VS2008)实验报告高斯投影正反算_第3页
《测绘程序设计(VC.net)》 上机实验报告 (Visual C++.Net) 班 级: 学 号: 姓 名: 序 号: 二零一一年五月 实验7 常用测量程序设计 1. 实验目的: 1.1 巩固类的创建与使用; 1.2 掌握数组参数的传递; 1.3 掌握常用测绘程序设计的技巧。 1.4 2. 实验内容: 编写高斯投影正反算程序。 3. 设计思路: 这次的实验目的是实现高斯正反算。需要考虑投影方式即分带的方式,又要考虑椭球参数的类型,所以我添加了两个函数来完成此功能。分别是int SetProjectType(int m)和void SetParameter(int m,double &a,double &b)。 4. 界面设计: 界面设计很简单,具体见运行结果。 5. 主要代码: 文件名:GaussProjectDlg.cpp 代码: const double PI=4*atan(1.0); //获得分带方式返回中央子午线经度 int CGaussProjectDlg::SetProjectType(int m) { UpdateData(TRUE); int n; //记录分带带号 double L; //经度 L=iDegreeL+iMinL/60+dSecondL/3600; if(m==1) //6度带 { n=int(L/6)+1; L0=6*n-3; } else if(m==2) //3度带 { n=int((L+1.5)/3); L0=3*n; } else if(m==3) //自主分带 L0=L0; return L0; } //获取椭球参数 void CGaussProjectDlg::SetParameter(int m,double &a,double &b) { if(m==1) //克拉索夫斯基椭球 { a=6378245.0; b=6356863.0187730473; //e=sqrt(0.006693421622966); } else if(m==2) //1975国际协议椭球 { a=6378140.0; b=6356755.2881575287; //e=sqrt(0.006694384999588); } else if(m==3) //WGS-84椭球 { a=6378137.0; b=6356752.3142; //e=sqrt(0.0066943799013); } } void CGaussProjectDlg::OnBnClickedButtonpositivecal() { // TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); double N; double t; double Eta; double X; double A0,A2,A4,A6,A8; double RadB; double Rou; Rou=180*3600/PI; double a,b,e1,e2; //椭球参数 SetParameter(iParameterType,a,b); e1=sqrt(a*a-b*b)/a; e2=sqrt(a*a-b*b)/b; double l; L0=SetProjectType(iProjectType); double L; L=iDegreeL+double(iMinL)/60+dSecondL/3600; l=(L-L0)*3600; RadB=(iDegreeB+double(iMinB)/60+dSecondB/3600)*PI/180; N=a/sqrt(1-e1*e1*sin(RadB)*sin(RadB)); t=tan(RadB); Eta=e2*cos(RadB); A0=1...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部