当前位置:文档之家› 大地测量学基础 课程设计报告

大地测量学基础 课程设计报告

专业课程设计报告高斯投影工具箱电算程序设计学院土木与水利工程学院专业班级测绘工程10级1班学生姓名邱霖熹指导教师周志易提交日期2012年08月08日目录一、设计目的 (1)二、设计要求和设计指标 (1)2.1设计要求 (1)2.2设计指标 (1)三、设计内容 (1)3.1高斯投影坐标解算(电算)结构设计 (1)3.2高斯投影坐标解算正算逻辑代码 (2)3.3高斯投影坐标解算反算逻辑代码 (2)3.4高斯投影坐标解算换带逻辑代码 (4)3.5电算程序人机交互界面设计 (6)四、设计改进建议 (7)五、总结及心得感想 (7)六、主要参考文献 (7)一、设计目的1. 进一步熟练掌握大地测量学基础这门课程中的重点知识2. 深入对高斯投影坐标解算过程及思路的理解3. 加强对可视化界面程序设计的操作及演练4. 锻炼运用计算机汇编语言解决专业课程相关知识的能力二、设计要求和设计指标2.1设计要求1. 通过运用语言编写高斯投影坐标解算(正反解算)的电算程序2. 运用所掌握的语言知识对程序代码进行优化和改进,使其精确、高效3. 构建良好的程序人机交互界面,使电算程序方便于他人的使用2.2设计指标1. 设计程序能够精确、高效地对高斯投影坐标进行解算(正反解算)2. 电算程序代码用语规范、构架稳定、不易出错,对系统的兼容性良好3. 程序具有良好的人机交互界面,大方美观且易于使用三、设计内容3.1高斯投影坐标解算(电算)结构设计3.2高斯投影坐标解算正算逻辑代码'高斯投影正向解算步骤'①定义常量并赋值Dim Pi, PitP As DoublePi = 3.141592653589PitP = 180 / Pi * 3600'②定义变量并赋值Dim B, L, L0O As DoubleB = (TextBoxBD.Text * 3600 + TextBoxBS.Text * 60 + TextBoxBP.Text * 1) / 3600 * Pi / 180L = (TextBoxLD.Text * 3600 + TextBoxLS.Text * 60 + TextBoxLP.Text * 1) / 3600 * Pi / 180 L0O = TextBoxL0O.TextDim BtP, LtP, L0OtP As DoubleBtP = TextBoxBD.Text * 3600 + TextBoxBS.Text * 60 + TextBoxBP.Text * 1LtP = TextBoxLD.Text * 3600 + TextBoxLS.Text * 60 + TextBoxLP.Text * 1L0OtP = TextBoxL0O.Text * 360'③定义辅助变量并计算Dim lt, N, a0, a4, a6, a3, a5As Doublelt = (LtP - L0OtP) / PitPN = 6399698.902 - (21562.267 - (108.973 - 0.612 * (Cos(B)) ^ 2) * (Cos(B)) ^ 2) * (Cos(B)) ^ 2a0 = 32140.404 - (135.3302 - (0.7092 - 0.004 * (Cos(B)) ^ 2) * (Cos(B)) ^ 2) * (Cos(B)) ^ 2a4 = (0.25 + 0.00252 * (Cos(B)) ^ 2) * (Cos(B)) ^ 2 - 0.04166a6 = (0.166 * (Cos(B)) ^ 2 - 0.084) * (Cos(B)) ^ 2a3 = (0.3333333 + 0.001123 * (Cos(B)) ^ 2) * (Cos(B)) ^ 2 - 0.1666667a5 = 0.0083 - (0.1667 - (0.1968 + 0.004 * (Cos(B)) ^ 2) * (Cos(B)) ^ 2) * (Cos(B)) ^ 2 '④正向解算Dim X, Y As DoubleX = 6367558.4969 * BtP / PitP - (a0 - (0.5 + (a4 + a6 * lt ^ 2) * lt ^ 2) * lt ^ 2 * N) * Cos(B) * Sin(B)Y = (1 + (a3 + a5 * lt ^ 2) * lt ^ 2) * lt * N * Cos(B)'⑤输出数据TextBoxX.Text = XTextBoxY.Text = Y3.3高斯投影坐标解算反算逻辑代码'高斯投影反向解算步骤'①定义常量并赋值Dim Pi, PitP As DoublePi = 3.141592653589PitP = 180 / Pi * 3600'②定义变量并赋值Dim X, Y, L0O As DoubleX = TextBoxX.TextY = TextBoxY.TextL0O = TextBoxL0O.Text'③定义辅助变量并计算Dimβ, βr, Bf, Bfr, Nf, Z, b2, b3, b4, b5As Doubleβ = X / 6367558.4969 * PitPβr = (X / 6367558.4969 * PitP) / 3600 * Pi / 180Bf = β + (50221746 + (293622 + (2350 + 22 * (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (10) ^ (-10) * Sin(βr) * Cos(βr) * PitPBfr= (β+ (50221746+ (293622+ (2350+ 22* (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (10) ^ (-10) * Sin(βr) * Cos(βr) * PitP) / 3600 * Pi / 180Nf= 6399698.902- (21562.267- (108.973- 0.612* (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2Z = Y / (Nf * Cos(Bfr))b2 = (0.5 + 0.003369 * (Cos(Bfr)) ^ 2) * Sin(Bfr) * Cos(Bfr)b3 = 0.333333 - (0.166667 - 0.001123 * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2b4 = 0.25 + (0.16161 + 0.00562 * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2b5 = 0.2 - (0.1667 - 0.0088 * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2'④反向解算Dim lt, B, L As Doublelt = (1 - (b3 - b5 * (Z ^ 2)) * (Z ^ 2)) * Z * PitPB = (Bf - (1 - (b4 - 0.12 * (Z ^ 2)) * (Z ^ 2)) * (Z ^ 2) * b2 * PitP) / 3600L = (L0O * 3600 + lt) / 3600'⑤数值换算Dim BD, BS, BP As DoubleBD = Fix(B)BS = Format(Fix((B - BD) * 60), "00")BP = ((B - BD) * 60 - BS) * 60BS = Math.Abs(BS)BS = Format(BS, "00")BP = Math.Abs(BP)Dim LD, LS, LP As DoubleLD = Fix(L)LS = Format(Fix((L - LD) * 60), "00")LP = ((L - LD) * 60 - LS) * 60LS = Math.Abs(LS)LS = Format(LS, "00")LP = Math.Abs(LP)'⑥输出数据TextBoxBD.Text = BDTextBoxBS.Text = BSTextBoxBP.Text = BPTextBoxLD.Text = LDTextBoxLS.Text = LSTextBoxLP.Text = LP3.4高斯投影坐标解算换带逻辑代码'高斯投影换带解算步骤'①定义常量并赋值Dim Pi, PitP As DoublePi = 3.141592653589PitP = 180 / Pi * 3600'②定义变量并赋值Dim X, Y, L0O As DoubleX = TextBoxX.TextY = TextBoxY.TextL0O = TextBoxL0O.Text'③定义辅助变量并计算Dimβ, βr, Bf, Bfr, Nf, Z, b2, b3, b4, b5As Doubleβ = X / 6367558.4969 * PitPβr = (X / 6367558.4969 * PitP) / 3600 * Pi / 180Bf = β + (50221746 + (293622 + (2350 + 22 * (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (10) ^ (-10) * Sin(βr) * Cos(βr) * PitPBfr= (β+ (50221746+ (293622+ (2350+ 22* (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (Cos(βr)) ^ 2) * (10) ^ (-10) * Sin(βr) * Cos(βr) * PitP) / 3600 * Pi / 180Nf= 6399698.902- (21562.267- (108.973- 0.612* (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2Z = Y / (Nf * Cos(Bfr))b2 = (0.5 + 0.003369 * (Cos(Bfr)) ^ 2) * Sin(Bfr) * Cos(Bfr)b3 = 0.333333 - (0.166667 - 0.001123 * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2b4 = 0.25 + (0.16161 + 0.00562 * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2b5 = 0.2 - (0.1667 - 0.0088 * (Cos(Bfr)) ^ 2) * (Cos(Bfr)) ^ 2'④反向解算Dim lt, B, L As Doublelt = (1 - (b3 - b5 * (Z ^ 2)) * (Z ^ 2)) * Z * PitPB = (Bf - (1 - (b4 - 0.12 * (Z ^ 2)) * (Z ^ 2)) * (Z ^ 2) * b2 * PitP) / 3600L = (L0O * 3600 + lt) / 3600'⑤数值换算Dim BD, BS, BP As DoubleBD = Fix(B)BS = Format(Fix((B - BD) * 60), "00")BP = ((B - BD) * 60 - BS) * 60BS = Math.Abs(BS)BS = Format(BS, "00")BP = Math.Abs(BP)Dim LD, LS, LP As DoubleLD = Fix(L)LS = Format(Fix((L - LD) * 60), "00")LP = ((L - LD) * 60 - LS) * 60LS = Math.Abs(LS)LS = Format(LS, "00")LP = Math.Abs(LP)'⑥输出数据TextBoxBD.Text = BDTextBoxBS.Text = BSTextBoxBP.Text = BPTextBoxLD.Text = LDTextBoxLS.Text = LSTextBoxLP.Text = LP'⑦定义变量并赋值Dim BN, LN, L0N As DoubleBN = B * Pi / 180LN = L * Pi / 180L0N = TextBoxL0N.TextDim BNtP, LNtP, L0NtP As DoubleBNtP = BN * 3600 / Pi * 180LNtP = LN * 3600 / Pi * 180L0NtP = TextBoxL0N.Text * 3600'⑧定义辅助变量并计算Dim ltN, N, a0, a4, a6, a3, a5As DoubleltN = (LNtP - L0NtP) / PitPN= 6399698.902- (21562.267- (108.973- 0.612* (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2a0 = 32140.404 - (135.3302 - (0.7092 - 0.004 * (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2a4 = (0.25 + 0.00252 * (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2 - 0.04166a6 = (0.166 * (Cos(BN)) ^ 2 - 0.084) * (Cos(BN)) ^ 2a3 = (0.3333333 + 0.001123 * (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2 - 0.1666667a5 = 0.0083 - (0.1667 - (0.1968 + 0.004 * (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2) * (Cos(BN)) ^ 2 '⑨正向解算Dim XN, YN As DoubleXN = 6367558.4969 * BNtP / PitP - (a0 - (0.5 + (a4 + a6 * ltN ^ 2) * ltN ^ 2) * ltN ^ 2 * N) * Cos(BN) * Sin(BN)YN = (1 + (a3 + a5 * ltN ^ 2) * ltN ^ 2) * ltN * N * Cos(BN)'⑩输出数据TextBoxXN.Text = XNTextBoxYN.Text = YN3.5电算程序人机交互界面设计图3-1 人机交互界面高斯投影正向计算演示图3-2 人机交互界面高斯投影反向计算演示图3-3 人机交互界面高斯投影换带计算演示四、设计改进建议1. 本程序基于克拉索夫斯基椭球的基本几何参数进行代码设计,对于其它的地球椭球参数需要在源程序代码上进行一定的修改方能适用,适用面相对较窄。

相关主题