资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
本文格式为Word版,下载可任意编辑高斯投影坐标正反算编程报告 高斯投影坐标正反算编程报告 1. 编程思想 举行高斯投影坐标正反算的编程需要牵涉到大量的公式,为了使程序条理更领会,各块的数据复用性更强,这里采取了布局化的编程思想。 程序由四大块组成。 GeodesyHomework.cpp文件用于存放main()函数,是整个程序的入口。通过布局化的编程尽力使main()函数变得简朴。 MyFunction.h和MyFunction.cpp用于存放计算过程中举行角度弧度换算时所要用到的一些自定的转换函数。 Zhengsuan.h和Zhengsuan.cpp用于存放Zhengsuan类,在Zhengsuan类中声领略高斯投影坐标正算所要用到的全体变量,在类的构造函数中举行成员变量的初始化及正算计算。通过get函数获得相应的正算结果。 Fansuan.h和Fansuan.cpp用于存放Fansuan类,类似于Zhengsuan类,Fansuan类中声领略高斯投影坐标反算所要用到的全体变量,在类的构造函数中举行成员变量的初始化及反算计算。通过get函数获得相应的反算结果。 2. 计算模型 高斯投影正算公式 x?X?NN232244?sinBcosB?l?simBcosB(5?t?9?4?)l2?224?4N5246?sinBcosB(61?58t?t)l720?6y?NN3223?cosB?l?cosB(1?t?)l?6?3N5242225?cosB(5?18t?t?14?58?t)l120?5 tf2MfNf5f高斯投影反算公式 B?Bf?tfy?2tf24MfN3f?5?3t2f224?2f?9?ftfy?720MfN46y61?90t2?45tyff?yy32l?1?2t2f?f3NfcosBf6NfcosBf? y524222?5?28t?24t?6?8?fffftf5120NfcosBf?3. 程序框图 1 开头 输入B,L 求定带号N,中央纬度L0,纬度差l 正算 按照实用公式计算x,y 换算为国家统一坐标X,Y 输出X,Y 输入国家统一坐标X,Y 由Y取定带号N,并换算出x,y 求出中央经线L0 反算 按照实用公式计算B,l L=L0+l求出大地经度L 输出B,L 终止 4. 计算结果 2 5. 附录:程序代码 /主函数入口 GeodesyHomework.cpp #include #include #include #include using namespace std; voidfansuan(); voidzhengsuan(); void main() zhengsuan(); fansuan(); printf( voidzhengsuan() doublemyB,myL; coutmyXmyY; FansuanmyFansuan1(myX,myY); 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 doubleangleToDegree(intdu,intfen,floatmiao) double result=0; result=miao/3600.0+fen/60.0+du; return result; doubleangleToDegree() intdu,fen; floatmiao; double result; coutdufenmiao; result=angleToDegree(du,fen,miao); return result; doubledegreeToRadian(double degree) double result=0; result=degree/57.295779513082321; 4 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_E810_44A3_8F14_56421A7B4466_INCLUDED_ #if _MSC_VER 1000 #pragma once #endif / _MSC_VER 1000 #define rouSecond 206264.806247096355 #include #include #include using namespace std; classZhengsuan public: Zhengsuan(); Zhengsuan(double fB,doublefL); doublegetX(); doublegetY(); doublegetrB(); doublegetrL(); voidprintLocation(); virtual Zhengsuan(); private: 5 5
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号