高斯投影坐标正反算编程报告
本报告主要介绍了高斯投影坐标正反算编程的实现,包括编程思想、计算模型、程序框图和计算结果等。
编程思想
在实现高斯投影坐标正反算编程时,为了使程序条理更清楚、各块的数据复用性更强,采取了结构化的编程思想。程序由四大块组成:GeodesyHomework.cpp、MyFunction.h、Zhengsuan.h 和 Fansuan.h。其中,GeodesyHomework.cpp 用于存放 main() 函数,是整个程序的入口。MyFunction.h 和 MyFunction.cpp 用于存放计算过程中进行角度弧度换算时所要用到的自定义转换函数。Zhengsuan.h 和 Zhengsuan.cpp 用于存放 Zhengsuan 类,在 Zhengsuan 类中声明了高斯投影坐标正算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及正算计算。Fansuan.h 和 Fansuan.cpp 用于存放 Fansuan 类,类似于 Zhengsuan 类,Fansuan 类中声明了高斯投影坐标反算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及反算计算。
计算模型
高斯投影坐标正算公式:
x = X + N/2 * ρ * sin(B) * cos(B) * l + N/24 * ρ * sin(B) * cos(3B) * (5 - t^2 + 9η^2 + 4η^4) * l^3 + ...
y = N * ρ'' * cos(B) * l'' + N/6 * ρ * cos(3B) * (1 - t^2 + η^2) * l + ...
高斯投影反算公式:
B = Bf - tf^2 * M * Nf * y^2 + tf^4 * M * Nf * (5 + 3tf^2 + ηf^2 - 9ηf^2 * tf^2) * y^4 - tf^6 * M * Nf * (61 + 90tf^2 + 45tf^4) * y^6 * l
y = Nf * cos(Bf) - y/36 * Nf^3 * cos(Bf) * (1 + 2tf^2 + ηf^2) + y/5120 * Nf^5 * cos(Bf) * (5 + 28tf^2 + 24tf^4 + 6ηf^2 + 8ηf^2 * tf^2)
程序框图
程序框图主要包括四个部分:输入部分、正算部分、反算部分和输出部分。在输入部分,用户需要输入大地纬度 B 和大地经度 L。然后,在正算部分,程序将根据输入的 B 和 L 计算出国家统一坐标 X 和 Y。在反算部分,程序将根据输入的 X 和 Y 计算出大地纬度 B 和大地经度 L。在输出部分,程序将输出计算结果。
计算结果
计算结果主要包括两个部分:正算结果和反算结果。在正算结果中,程序将输出国家统一坐标 X 和 Y。在反算结果中,程序将输出大地纬度 B 和大地经度 L。
附录
附录部分主要包括程序代码,包括主函数入口 GeodesyHomework.cpp、自定义功能函数库 MyFunction.h 和类文件 Zhengsuan.h、Fansuan.h 等。