C#高斯换带解析ppt课件.ppt

上传人:小飞机 文档编号:1375499 上传时间:2022-11-16 格式:PPT 页数:31 大小:576.50KB
返回 下载 相关 举报
C#高斯换带解析ppt课件.ppt_第1页
第1页 / 共31页
C#高斯换带解析ppt课件.ppt_第2页
第2页 / 共31页
C#高斯换带解析ppt课件.ppt_第3页
第3页 / 共31页
C#高斯换带解析ppt课件.ppt_第4页
第4页 / 共31页
C#高斯换带解析ppt课件.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《C#高斯换带解析ppt课件.ppt》由会员分享,可在线阅读,更多相关《C#高斯换带解析ppt课件.ppt(31页珍藏版)》请在三一办公上搜索。

1、高斯投影换带计算,专业:测绘工程班级:测绘2班,高斯投影换带计算,1.设计内容 1.1设计意义 1.2基础理论 1.3数据流程图 1.4详细设计2.功能实现2.1关键技术和难点2.2程序使用说明书 3.总结,1.设计内容,1.1设计意义 在实际测量工作中,我们常常遇到坐标不统一的情况,为了计算简便,把不同形式的坐标转换成我们所需的坐标,为我们的工程服务,经常需要进行高斯投影正算、反算、坐标换带和子午线收敛角的计算工作。为此,我们编写了这一程序设计,希望能使以后的转换工作更加简便。本软件主要应用相关的转换公式,采用C#编程可随时随地实现任何参考椭球体下高斯坐标转换与大地坐标之间的正反算和换带计算

2、,达到高斯平面坐标转换的目的。本文所编程序的特点是,操作简单输出简捷、结果完整,不需要另加辅助内容。,高斯投影虽然保证了角度投影前后没有变形,但其长度变形仍然存在,并且距离中央子午线愈远,长度变形愈大。为了限制高斯投影的长度变形,将椭球面按一定经度的子午线划分成不同的投影带,把投影范围限制在中央子午线东西两侧一定的狭长地带内分别进行投影。由于中央子午线的经度不同,使得椭球面上统一的大地坐标系,分割成为各带独立的平面坐标系。为了得到统一的坐标系,必须进行换带计算。,1.2基础理论 利用高斯正反算间接换带,把椭球面上的大地坐标作为过渡坐标:,这种方法,理论上最简明严密,精度最高,通用性最强。不仅适

3、用于3-3带以及6-3带互相之间的邻带坐标换算,且适用于任意带之间的坐标换算。虽计算量稍大,但由于计算机的普及和本法的通用性及计算的高精度,它自然便成为坐标邻带换算中最基本的方法。,反算,正算,计算和数据模型,正算是指:由大地坐标(L,B)求得高斯平面坐标(x,y)的过程。反算是指:由高斯平面坐标(x,y)求得大地坐标(L,B)的过程。正算:高斯投影必须满足的三个条件:(1),中央子午线投影后为直线。(2),中央子午线投影后长度不变。(3),投影具有正性性质,即正性投影条件。由第一个条件可知,中央子午线东西两侧的投影必然对称于中央子午线。设在托球面上有P1 ,P2,且对称于中央子午线。其大地坐

4、标为(l,B),(-l,B)则投影后的平面坐标一定为P1(x,y),P2(x,-y).由第二个条件可知,位于中央子午线上的点,投影后的纵坐标x应该等于投影前从赤道量至该点的子午弧长。,反算:在高斯投影坐标反算时,原面是高斯平面,投影面是椭球面,则有如下的投影方程:则其的三个条件:(1)x坐标轴投影成中央子午线,是投影的对称轴;(2)x轴上的长度投影保持不变;(3)正性投影条件。,高斯反算公式(克氏椭球),高斯反算公式(IAG椭球),高斯正算公式:(克氏椭球),高斯正算公式:(IAG椭球),1.3数据流程图,1.4详细设计 主要研究内容是利用C#软件把高斯换带计算从手算到实现电算的一个过程。 主

5、要分为四个界面(1)欢迎界面,(2)主程序界面,(2)主程序界面,(3)带号与中央子午线转换界面,(4)弧度角度转换界面,2.功能实现,2.1关键技术和难点/ / 反算函数 / public void FS() / 克氏椭球反算 if (radioButton1.Checked = true) = x / 6367558.4969; Bf = + (50221746 + (293622 + (2350 + 22 * Math.Pow (Math.Cos() ,2) * Math.Pow (Math.Cos() ,2) * Math.Pow (Math.Cos() ,2) * Math .Pow

6、 (10,-10) * Math.Sin() * Math.Cos(); Nf = 6399698.902 - (21562.267 - (108.973 - 0.612 * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2); Z = y / (Nf * Math.Cos(Bf); b2 = (0.5 + 0.003369 * Math.Pow(Math.Cos(Bf), 2) * Math.Sin(Bf) * Math.Cos(Bf); b3 = 0.333333 - (0.16

7、6667 - 0.001123 * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2); b4 = 0.25 + (0.16161 + 0.00562 * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2); b5 = 0.2 - (0.1667 - 0.0088 * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2); B = Bf - (1 - (b4 - 0.12 * Z * Z) * Z * Z) * Z * Z * b

8、2; B1 = redian_a(B); l = (1 - (b3 - b5 * Z * Z) * Z * Z) * Z; L = L01 + l; L1 = redian_a(L); ,/ IAG椭球反算 else = x / 6367452.1328; Bf = + (50228976 + (293697 + (2383 + 22 * Math.Pow(Math.Cos(), 2) * Math.Pow(Math.Cos(), 2) * Math.Pow(Math.Cos(), 2) * Math.Pow(10, -10) * Math.Sin() * Math.Cos(); Nf = 6

9、399596.652 - (21565.045 - (108.996 - 0.603 * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2); Z = y / (Nf * Math.Cos(Bf); b2 = (0.5 + 0.00336975 * Math.Pow(Math.Cos(Bf), 2) * Math.Sin(Bf) * Math.Cos(Bf); b3 = 0.3333333 - (0.1666667 - 0.001123 * Math.Pow(Math.Cos(Bf)

10、, 2) * Math.Pow(Math.Cos(Bf), 2); b4 = 0.25 + (0.161612 + 0.005617 * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2); b5 = 0.2 - (0.16667 - 0.00878 * Math.Pow(Math.Cos(Bf), 2) * Math.Pow(Math.Cos(Bf), 2); B = Bf - (1 - (b4 - 0.147 * Z * Z) * Z * Z) * Z * Z * b2; B1 = redian_a(B); l = (1 - (b3

11、- b5 * Z * Z) * Z * Z) * Z; L = (L01 + l); L1 = redian_a(L); ,/ / 正算函数 / public void ZS() / 克氏椭球 if (radioButton1.Checked = true) / / 3-3正算函数 / if (radioButton3.Checked = true) if (MessageBox.Show(您确定向右换带吗?, 确定向右换带吗?, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) l1 = l - 3 *

12、 Math.PI / 180; else l1 = l + 3 * Math.PI / 180; / ,/ 3-6正算函数 / else if (radioButton4.Checked = true) if (MessageBox.Show(您确定向右换带吗?, 确定向右换带吗?, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) l1 = l - 6 * Math.PI / 180; else l1 = l + 3 * Math.PI / 180; / / 任意正算函数 / else if (radi

13、oButton5.Checked = true) l1 = L - L02; ,N = 6399698.902 - (21562.267 - (108.973 - 0.612 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B); a0 = 32140.404 - (135.3302 - (0.7092 - 0.004 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B

14、); a4 = (0.25 + 0.00252 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) - 0.04166; a6 = (0.166 * Math.Cos(B) * Math.Cos(B) - 0.084) * Math.Cos(B) * Math.Cos(B); a3 = (0.3333333 + 0.001123 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) - 0.1666667; a5 = 0.0083 - (0.1667 - (0.1968 + 0

15、.004 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B); X = 6367558.4969 * B - (a0 - (0.5 + (a4 + a6 * l1 * l1) * l1 * l1) * l1 * l1 * N) * Math.Sin(B) * Math.Cos(B); Y = (1 + (a3 + a5 * l1 * l1) * l1 * l1) * l1 * N * Math.Cos(B); ,/ IAG椭球 else / / 3-3正算函数 / if (rad

16、ioButton3.Checked = true) if (MessageBox.Show(您确定向右换带吗?, 确定向右换带吗?, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) l1 = l - 3 * Math.PI / 180; else l1 = l + 3 * Math.PI / 180; / / 3-6正算函数 / else if (radioButton4.Checked = true) if (MessageBox.Show(您确定向右换带吗?, 确定向右换带吗?, MessageBo

17、xButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) l1 = l - 6 * Math.PI / 180; else l1 = l + 3 * Math.PI / 180; ,/ / 任意正算函数 / else if (radioButton5.Checked = true) l1 = L - L02; N = 6399596.652 - (21565.045 - (108.996 - 0.603 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.C

18、os(B) * Math.Cos(B); a0 = 32144.5189 - (135.3646 - (0.7034 - 0.0041 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B); a4 = (0.25 + 0.00253 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) - 0.04167; a6 = (0.167 * Math.Cos(B) * Math.Cos(B) - 0.084) * Math.Cos

19、(B) * Math.Cos(B); a3 = (0.3333333 + 0.001123 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) - 0.1666667; a5 = 0.00878 - (0.1702 - 0.20382 * Math.Cos(B) * Math.Cos(B) * Math.Cos(B) * Math.Cos(B); X = 6367452.1328 * B - (a0 - (0.5 + (a4 + a6 * l1 * l1) * l1 * l1) * l1 * l1 * N) * Math.Sin(B)

20、 * Math.Cos(B); Y = (1 + (a3 + a5 * l1 * l1) * l1 * l1) * l1 * N * Math.Cos(B); ,2.2程序使用说明书,先打开程序后出现如图界面,然后点击进入系统,出现如图界面,系统默认为任意带,克氏椭球,请选择带转换和椭球,选好后输入数据,如果为任意带时需要输入中央子午线,输入完成后可以点击计算。如果选择的为3-3换带/3-6换带,点击计算后会出现如下对话框点击是则向右换带,点否则想左换带,点击重置后,所以textbox全部清空;可重新输入再次计算,点击菜单中的“带号与中央子午线转换”,出现如下窗体可以选择三度带和六度带,然后输

21、入数据点击 “求中央子午线” / “求带号”来求该带号下的中央子午线,或者求该经度下的带号,点击菜单中的“弧度角转换”,出现如下窗体;输入数据;点击“角转弧”/ “弧转角”。,点击关闭时,会提示是否退出,如下图点击“确定”的话则退出系统;点击“取消”则返回系统。,3.总结,1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。 3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。 4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。,谢谢使用!Thanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号