2019年高斯投影坐标正反算编程报告.docx
《2019年高斯投影坐标正反算编程报告.docx》由会员分享,可在线阅读,更多相关《2019年高斯投影坐标正反算编程报告.docx(11页珍藏版)》请在三一文库上搜索。
1、高斯投影坐标正反算编程报告10021班 张鑫 学号:20103025900401. 编程思想进行高斯投影坐标正反算的编程需要牵涉到大量的公式,为了使程序条理更清楚,各块的数据复用性更强,这里采取了结构化的编程思想。程序由四大块组成。GeodesyHomework.cpp文件用于存放main()函数,是整个程序的入口。通过结构化的编程尽力使main()函数变得简单。MyFunction.h和MyFunction.cpp用于存放计算过程中进行角度弧度换算时所要用到的一些自定的转换函数。Zhengsuan.h和Zhengsuan.cpp用于存放Zhengsuan类,在Zhengsuan类中声明了高斯
2、投影坐标正算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及正算计算。通过get函数获得相应的正算结果。Fansuan.h和Fansuan.cpp用于存放Fansuan类,类似于Zhengsuan类,Fansuan类中声明了高斯投影坐标反算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及反算计算。通过get函数获得相应的反算结果。2. 计算模型高斯投影正算公式高斯投影反算公式3. 程序框图开始输入B,L求定带号N,中央纬度L0,纬度差l按照实用公式计算x,y换算为国家统一坐标X,Y输出X,Y输入国家统一坐标X,Y由Y取定带号N,并换算出x,y求出中央经线L0按照实用公式计算
3、B,lL=L0+l求出大地经度L输出B,L结束正算反算4. 计算结果5. 附录:程序代码/主函数入口GeodesyHomework.cpp#include MyFunction.h#include Zhengsuan.h#include Fansuan.h#include using namespace std;voidfansuan();voidzhengsuan();void main()zhengsuan();fansuan();printf(/n over!);voidzhengsuan()doublemyB,myL;cout【正算】endl;cout请输入大地纬度Bendl;myB=
4、angleToDegree();cout请输入大地经度Lendl;myL=angleToDegree();ZhengsuanmyZhengsuan1(myB,myL);printf(Radian B=%f L=%f n,myZhengsuan1.getrB(),myZhengsuan1.getrL();myZhengsuan1.printLocation();voidfansuan()doublemyX,myY;cout【反算】endl;cout请输入国家统一坐标 X Y。例如 3378627.1819 20243953.4517myXmyY;FansuanmyFansuan1(myX,myY
5、);myFansuan1.printLocation();/自定功能函数库MyFunction.h#define PI 3.1415926#include using namespace std;doubleangleToDegree(intdu,intfen,floatmiao);double angleToDegree();/将度分秒换算为度doubledegreeToRadian(double degree);double degreeToRadian();/将角度换算为弧度MyFunction.cpp#include MyFunction.hdoubleangleToDegree(in
6、tdu,intfen,floatmiao)double result=0;result=miao/3600.0+fen/60.0+du;return result;doubleangleToDegree()intdu,fen;floatmiao;double result;cout请输入度分秒。例如:30 20 00dufenmiao;result=angleToDegree(du,fen,miao);return result;doubledegreeToRadian(double degree)double result=0;result=degree/57.295779513082321
7、;return result;doubledegreeToRadian()doubleresult,degree;degree=angleToDegree();result=degreeToRadian(degree);return result;/正算类Zhengsuan.h/ Zhengsuan.h: interface for the Zhengsuan class./#if !defined(AFX_ZHENGSUAN_H_2655EA28_E810_44A3_8F14_56421A7B4466_INCLUDED_)#define AFX_ZHENGSUAN_H_2655EA28_E8
8、10_44A3_8F14_56421A7B4466_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#define rouSecond 206264.806247096355#include MyFunction.h#include #include using namespace std;classZhengsuanpublic:Zhengsuan();Zhengsuan(double fB,doublefL);doublegetX();doublegetY();doublegetrB();doublegetrL();v
9、oidprintLocation();virtual Zhengsuan();private:double x;double y;/大地坐标double X;double Y;/国家统一坐标double B;doublerB;intBsecond;double L;doublerL;/输入的大地纬度B,大地经度L,rB,rL为对应弧度表示值,Bsecond为换算成秒数值int n;/带号ndouble L0;/中央经线纬度L0double LDot;/纬度差L-L0intLDotSecond;/换算成秒的纬度差double l;double N;double a0;double a3;doub
10、le a4;double a5;double a6;/七个计算参数;#endif / !defined(AFX_ZHENGSUAN_H_2655EA28_E810_44A3_8F14_56421A7B4466_INCLUDED_)Zhengsuan.cpp/ Zhengsuan.cpp: implementation of the Zhengsuan class./#include Zhengsuan.h/ Construction/Destruction/Zhengsuan:Zhengsuan()Zhengsuan:Zhengsuan(double fB,doublefL)B=fB;rB=d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2019 年高 投影 坐标 正反 编程 报告
链接地址:https://www.31doc.com/p-2480699.html