C高斯换带计算报告和代码.doc

上传人:b****1 文档编号:230263 上传时间:2022-10-07 格式:DOC 页数:33 大小:593.50KB
下载 相关 举报
C高斯换带计算报告和代码.doc_第1页
第1页 / 共33页
C高斯换带计算报告和代码.doc_第2页
第2页 / 共33页
C高斯换带计算报告和代码.doc_第3页
第3页 / 共33页
C高斯换带计算报告和代码.doc_第4页
第4页 / 共33页
C高斯换带计算报告和代码.doc_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C高斯换带计算报告和代码.doc

《C高斯换带计算报告和代码.doc》由会员分享,可在线阅读,更多相关《C高斯换带计算报告和代码.doc(33页珍藏版)》请在冰豆网上搜索。

C高斯换带计算报告和代码.doc

设计说明书

设计题目:

高斯投影换带计算

姓名:

指导教师:

专 业:

 测绘工程    

2013年7月2日

课程设计说明书

学号

姓名

课程设计具体工作内容

个人得分

208

程序总体设计与分析

207

C#界面开发

210

程序编程和调试

215

制作答辨PPT

程序设计与测试(0.7)

小组得分

界面设计友好,用户数据输入及操作自由度高,有测试数据;

20

数据结构设计合理,代码模块化,通用性强;

20

设计思想清晰,代码编写采取逐层递进格式,注释可读性高;

20

程序总体运行通过,各部分功能实现程度高,注重容错处理

40

设计说明书部分(0.3)

设计报告说明书内容全面,层次清楚、完整程度高

30

设计思路清析、对设计思想、完成情况等重要内容说明表达清晰,总体分析、详细设计、界面设计各部分内容表述清楚

50

数据结构和算法合理,知识点明晰

20

教师评语

成绩评分表

1设计内容

1.1设计意义

高斯投影虽然保证了角度投影前后没有变形,但其长度变形仍然存在,并且距离中央子午线愈远,长度变形愈大。

为了限制高斯投影的长度变形,将椭球面按一定经度的子午线划分成不同的投影带,把投影范围限制在中央子午线东西两侧一定的狭长地带内分别进行投影。

由于中央子午线的经度不同,使得椭球面上统一的大地坐标系,分割成为各带独立的平面坐标系。

为了得到统一的坐标系,必须进行换带计算。

在实际测量工作中,我们常常遇到坐标不统一的情况,为了计算简便,把不同形式的坐标转换成我们所需的坐标,为我们的工程服务,经常需要进行高斯投影正算、反算、坐标换带和子午线收敛角的计算工作。

为此,我们编写了这一程序设计,希望能使以后的转换工作更加简便。

本软件主要应用相关的转换公式,采用C#编程可随时随地实现任何参考椭球体下高斯坐标转换与大地坐标之间的正反算和换带计算,达到高斯平面坐标转换的目的。

本文所编程序的特点是,操作简单.输出简捷、结果完整,不需要另加辅助内容。

本设计主要是利用C#作为前端开发工具进行应用程序开发。

1.2基础理论

正算是指:

由大地坐标(L,B)求得高斯平面坐标(x,y)的过程。

反算是指:

由高斯平面坐标(x,y)求得大地坐标(L,B)的过程。

正算:

高斯投影必须满足的三个条件:

(1),中央子午线投影后为直线。

(2),中央子午线投影后长度不变。

(3),投影具有正性性质,即正性投影条件。

由第一个条件可知,中央子午线东西两侧的投影必然对称于中央子午线。

设在托球面上有P1,P2,且对称于中央子午线。

其大地坐标为(l,B),(-l,B)则投影后的平面坐标一定为P1·(x,y),P2·(x,-y).

由第二个条件可知,位于中央子午线上的点,投影后的纵坐标x应该等于投影前从赤道量至该点的子午弧长。

相应计算公式:

(克氏椭球)

其中:

(IAG椭球)

反算:

在高斯投影坐标反算时,原面是高斯平面,投影面是椭球面,则有如下的投影方程:

则其的三个条件:

(1),x坐标轴投影成中央子午线,是投影的对称轴;

(2),x轴上的长度投影保持不变;

(3),正性投影条件。

相应计算公式:

(克氏椭球)

其中:

(克氏椭球)

1.3数据流程图

进入系统

选择带转换和椭球系统

输入已知数据和中央子午线

任意带

输入已知数据

3-33-6带

重置

计算

2-1数据流程图

1.4详细设计

主要研究内容是利用c#软件把高斯换带计算从手算实现电算的一个过程。

主要分为四个界面:

(1)欢迎界面

主要结构

过程名

功能与作用

进入功能

label3_Click

欢迎界面进入主页面

(2)主程序界面

主要结构

过程名

功能与作用

读入函数

publicvoidReadData()

读入数据

反算函数

publicvoidFS()

高斯反算

正算函数

publicvoidZS()

高斯正算

弧度转角度函数

redian_a(doublealfa)

弧度转角度

角度转弧度函数

angle_r(doublealfa)

角度转弧度

输出函数

publicvoidWriteData()

输出数据

计算

button1_Click

进行换带计算

重置

button2_Click_1

恢复原状态

改变属性

radioButton3_CheckedChanged

点击3-3换带时改变textbox的属性

改变属性

radioButton4_CheckedChanged

点击3-3换带时改变textbox的属性

改变属性

radioButton5_CheckedChanged

点击3-3换带时改变textbox的属性

带号与中央子午线转换

带号与中央子午线转换ToolStripMenuItem_Click

进入带号与中央子午线转换窗体

弧度角度转换

弧度角度转换ToolStripMenuItem_Click

进入弧度角度转换窗体

关闭

Form1_FormClosing

关闭整个程序

(3)带号与中央子午线转换界面

主要结构

过程名

功能与作用

求中央子午线

button1_Click

由带号求中央子午线

求带号

button2_Click

中央子午线由求带号

关闭

Form3_FormClosing

关闭该窗体

(4)弧度角度转换界面

主要结构

过程名

功能与作用

角转弧

button1_Click

角度转弧度

弧转角

button2_Click

弧度转角度

关闭

Form3_FormClosing

关闭该窗体

2功能实现

2.1关键技术和难点

///

///反算函数

///

publicvoidFS()

{

///克氏椭球反算

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(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.166667-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*b2;

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=6399596.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),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);

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

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1