为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于MATLAB的坐标转换程序设计毕业设计论文

2019-01-23 20页 doc 1MB 91阅读

用户头像 个人认证

不系舟红枫

从教近30年,经验丰富,教学水平较高

举报
基于MATLAB的坐标转换程序设计毕业设计论文对人体 一条鱼 本科生 毕 业 设 计(论文) 中文题目:基于MATLAB的坐标转换程序设计 English Title:Based on the MATLAB coordinate conversion program design 摘 要 本文主要阐述了基于MATLAB的坐标转换程序设计与实现的问题。论述以MATLAB为开发平台和编程语言,设计出解决工程测量中常见的坐标转换问题的程序。坐标转换一直是专业性强且不易解决的问题,针对目前坐标转换软件功能单一、操作不方便等问题,采用窗口、菜单、控件的操作方式,实现了所见即所得...
基于MATLAB的坐标转换程序设计毕业设计论文
对人体 一条鱼 本科生 毕 业 设 计(论文) 中文题目:基于MATLAB的坐标转换程序设计 English Title:Based on the MATLAB coordinate conversion program design 摘 要 本文主要阐述了基于MATLAB的坐标转换程序设计与实现的问题。论述以MATLAB为开发平台和编程语言,设计出解决测量中常见的坐标转换问题的程序。坐标转换一直是专业性强且不易解决的问题,针对目前坐标转换软件功能单一、操作不方便等问题,采用窗口、菜单、控件的操作方式,实现了所见即所得的人性化界面设计。程序的设计主要从两个方面进行,其一保证程序有较高的转换精度,其二是友好的界面设计。程序的运行能满足工程测量人员对坐标转换运算和坐标数据分析的需要,程序实现了不同参考椭球情况下七参数和四参数的计算过程、不同坐标系统的坐标转换和换带计算程序化。论文还诠释了测量坐标转换的含义和内容,针对坐标转换基本模型的选用、转换参数的解算、转换计算的方法、转换计算中值得注意的问题加以研究和探讨,以便实现在测量实践和理论中各类不同坐标之间的转换计算。 关键词:坐标转换,换带,参考椭球,MATLAB,图形用户界面 Abstract This article expatiates the design and implementation of a computing program for coordinate conversion, operation of MATLAB. With programmed language, the article designs the program of solving the common coordinate conversion problems in the engineering survey, which regards MATLAB as an exploitation basis. coordinate conversion is a professional problem which is difficult to solve, to solve the existed problems , the operating modes of windows, menus and widgets are adopted. Moreover, the WYSWYG humanized program designs are realized. The program designs come from two aspects. Firstly, the powerful operation function of the program is guaranteed. Secondly, the visualization is designed. The program operation meets the needs which engineering survey personnel need to have the coordinate conversion operation and data analysis. Meanwhile, the program designs the coordinate conversion function, including coordinate conversion among different coordinate systems and between two projection zones, realizing the computation of 4 parameters as well as 7 parameters under the coordinates among different coordinate systems. Above all, the article includes the meaning and content of transformation, basic model selection of coordinates transformation, calcu1ation of transformation parameters, calculation method of transformation and problems existing in transformation. Calculation are researched and discussed in this paper in order to measure transformation calculation of different coordinate in practice and theory. Key words: Coordinate conversion, Stripe exchange, Reference ellipsoid, MATLAB,GUI 目 录 1前 言 21 MATLAB程序设计基础 21.1 MATLAB程序设计基础[4] 21.1.1 MATLAB系统概述 21.1.2 MATLAB程序设计的基本原则 21.1.3 MATLAB中的变量和常量 31.1.4 矩阵运算基本操作及操作技巧 31.1.5 MATLAB的文件类型及常用函数 41.2 数据文件的输入和输出 41.2.1 文件的打开与关闭 41.2.2 文件读写命令函数 41.3 MATLAB图形用户界面设计 41.3.1 菜单设计 51.3.2 对话框设计 51.3.3 图形用户界面设计工具 82 坐标转换的基本理论 82.1坐标系的分类 82.1.1坐标系的分类 92.1.2常用的坐标系统 112.1.3 地球椭球的基本几何参数及其相互关系 152.2 高斯投影的基本概念 152.2.1 基本概念 172.2.2 高斯投影坐标正算 182.2.3 高斯投影坐标反算 192.3地方独立平面坐标系 202.3.1 工程测量中几种可能采用的直角坐标系 223 坐标转换的数学模型 223.1坐标系变换 223.1.1 空间直角坐标系与空间大地坐标系间的转换 233.1.2 空间坐标系与平面直角坐标系间的转换 243.2基准转换 243.2.1 七参数转换公式 263.2.2 四参数转换公式[13] 273.3坐标转换基本模型在测量实践和理论中的应用及分析 273.3.1 同一基准下坐标转换计算 273.3.2 不同基准下坐标转换计算 294 坐标转换程序设计 294.1程序整体设计 294.1.1 参数设计 294.1.2 坐标转换模块 294.1.3 程序功能设计图 294.2利用MATLAB实现坐标转换的函数 294.2.1 程序基本函数 294.2.2 坐标转换类函数 294.2.3 GUI程序代码 294.2.4 基于GUI程序界面设计 29结 论 29致 谢 29参考文献 29附 录 前 言 随着现代测绘科学技术的发展,常规大地测量方法已逐渐被卫星大地测量方法所取代。藉助于卫星大地测量可在一个三维地心坐标系中测定和表述地面点的空间位置,即可表示为三维空间直角坐标,也可表示为相应于某一椭球面的大地经纬度、大地高,因此空间大地直角坐标系及其各种转换关系在现代大地测量中具有现实意义。我国近年来已有很多城市采用GPS技术来建立和改造平面控制网,由于过去都年来积累的成果成图资料数量巨大,并仍具有宝贵的利用价值,必须考虑数据资料的连续性和相对稳定性。而且许多城市控制网质量较高,并采用的坐标系经过科学论证,设置合理,因此须将GPS测量数据归算到原有控制网的平面坐标中去,并用GPS技术来扩展和改善原有的地面控制网。工程施工过程中,常常会遇到不同坐标系统间,坐标转换的问题。施工坐标系与测量坐标系往往不一致,在计算测设数据时需要进行坐标换算。 坐标转换一直是专业性强且不易解决的问题,能够开发出一套既运算速度快又能保持高精度的坐标转换软件,将会给经济建设、科学技术和国防提供便利、高效的服务。针对复杂的坐标转换计算过程,作者利用MTATLAB实现了不同坐标系统的转换,使用户能够简单、方便地实现不同坐标系统中单点、批量点的坐标转换.,针对目前坐标转换软件功能单一、操作不方便等问题,采用窗口、菜单、控件的操作方式,实现了所见即所得的人性化界面设计。程序的设计主要从两个方面进行,其一保证程序有较高的转换精度,其二是友好的界面设计。 本程序设计实现了不同参考椭球情况下七参数和四参数的计算过程、不同坐标系统的坐标转换和换带计算程序化。不仅阐述了程序的坐标转换功能设计、可视化设计,还对坐标转换的理论基础进行了探讨,诠释了测量坐标转换的含义和内容,论述了坐标转换的数学模型及运算理论,针对坐标转换基本模型的选用、转换参数的解算、转换计算的方法、转换计算中值得注意的问题加以研究和探讨,以便实现在测量实践和理论中各类不同坐标之间的转换计算。并叙述了程序的功能、实现及实现过程,给出了实现一些运算功能的流程及相应的部分重要语句和代码。经过实例论证,程序的运行能够满足工程测量人员对坐标转换运算和坐标数据分析的需要。 1 MATLAB程序设计基础 1.1 MATLAB程序设计基础[4] 1.1.1 MATLAB系统概述 MATLAB是英文“矩阵实验室”——Matrix Laborratory 的缩写,全部用C语言编写。其具有一下特点: (1) 以复数矩阵作为基本编程单元,矩阵运算如同其他高级语言中的变量操作一样方便,而且矩阵无需定义即可采用。 (2) 语言书写简单。 (3) 语句功能强大。 (4) 有丰富的图形功能。 (5) 提供了许多面向应用问题求解的工具箱函数。 (6) 有丰富的外部程序接口,可以实现多种语言共享资源,在实践中可充分发挥各种语言的优越性。 1.1.2 MATLAB程序设计的基本原则 突破以往其他程序语言经常采用的循环思想,尽量用MATLAB矩阵式语言书写程序,使得程序简洁,执行效率高。在程序设计中尽量避免重复的脚本代码,多用MATLAB提供的函数。系统中的函数要比用一般代码编的函数执行效率高很多。在编写比较大的程序时,应该对各个细节以函数或子过程方式处理,避免矩阵混淆。 在程序编制过程中,各个功能部分尽量封装在函数中,这样不但可以减少全局变量个数,而且对各个函数的修改要比对整个程序的修改方便得多。 1.1.3 MATLAB中的变量和常量 在MATLAB中,变量名可由字母A-Z、a-z、数字和下划线“_”组成,但第一个字符必须是字母。 注意:MATLAB是区分大小写字母的,如矩阵a和A是不一样的。 在变量使用之前,用户不需要指定一个变量的数据类型,也不必声明变量。MATLAB有许多不同的数据类型,这对决定变量地大小和形式是有价值的,特别适合于混合数据类型、矩阵、细胞矩阵、结构和对象。 变量有局部变量和全局变量两种。 局部变量(local)是存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于函数本身。 全局变量(global)是在不同的工作空间以及基本工作空间中可以被共享的变量。必须用global逐个对具体变量加以专门定义,没有global定义的函数和基本空间,将无权享用全局变量。 1.1.4 矩阵运算基本操作及操作技巧 (1) 矩阵的输入 直接输入:行元素间用空格或逗号(,)隔开;行与行之间用分号(;)或回车;整个元素列表用[]括起。 (2) 通过下标 扩充矩阵;拆分矩阵。 (3) 矩阵元素的换位 1.1.5 MATLAB的文件类型及常用函数 (1) 文件类型 M文件:用于存储函数过程; Figure文件:用于显示、存储图形; Module文件:用于进行仿真(Simulink)操作及存储; GUI文件:用于编辑,存储程序界面。 在MATLAB中,最常用的是M文件。MATLAB是一种解释性语言,用户发出的指令需要送到MATLAB系统内解释,而M文件实际上就是指令的文本,用以统一将命令送入系统内解释。M文件的语法与C语言的很相似,对一定变成基础的用户来说,掌握MATLAB的编程不是一件难事。 M文件有命令式(Script)和函数式(Function)两种形式。命令式文件就是MATLAB内部命令的简单叠加,MATLAB会按顺序执行文件中的命令,这种方式常用来形成主函数。函数式文件用以解决参数传递和函数调用的问题,每个具体的功能一般用此方式实现,它的第一句以Function语句为引导。 (2) MATLAB中的常用函数 求逆函数inv(x), 求和函数sum(x,dim),常用矩阵:ones(M,N)、zeros(M,N)、eye(M,N)、rand(M,N)求矩阵的维数B=size(X,dim) 判断矩阵是否为空isempty(X) 改变矩阵大小reshape(X,M,N)寻找矩阵中的非零元素[I,J]=find(X)。 1.2 数据文件的输入和输出 1.2.1 文件的打开与关闭 (1) fopen: fid=(FILENAME,PERMISSION),PERMISSION常设的参数如下:‘r’为只读;‘w’为写文件(如果需要则创建新文件);‘a’为在文件后添加(如果需要则创建新文件);‘r+’为读写文件;‘a+’为读和添加文件(如果需要则创建新文件)。在默认情况下,以上几种方式打开的二进制文件,如果要打开文本文件,需要在字符串中增加‘t’,例如‘rt’,‘wt’等,以读方式打开一个文件时,如果在当前目录中找不到指定的文件,fopen会自动搜索路径中查找这个文件;如果成功地打开了一个文件,则得到文件句柄(一个整型数),否则返回-1。fid = 1的文件是标准输出(standard output),fid = 2的文件是标准出错(standard error)。 (2) fclose:ST = fclose(fid)。关闭FID对应的文件,若成功,返回0,否则,返回-1。其中如果fid=‘all’,则关闭所有文件。 1.2.2 文件读写命令函数 (1) fscanf:从文件中读入格式化后的数据。 [A,COUNT] = fscanf(fid,FORMAT,SIZE) (2) fprintf: 向文件中写入格式化数据。 COUNT = fprintf(fid,format,A) (3) feof: 判断是否到达文件尾。 (4) uigetfile:打开文件的标准文件对话框。 [FILENAME,PATHNAME,FILTERINDEX] = uigetfile(FILTERSPEC,TITLE) 1.3 MATLAB图形用户界面设计 1.3.1 菜单设计 建立用户菜单:要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。 建立一级菜单项的函数调用格式为:一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…) 建立子菜单项的函数调用格式为:子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,…) 菜单对象常用属性:菜单对象具有Children、Parent、Tag、Type、UserData、Visible等公共属性,除公共属性外,还有一些常用的特殊属性。 1.3.2 对话框设计 (1) 对话框的控件 在对话框上有各种各样的控件,利用这些控件可以实现有关控制。 按钮(Push Button)、 双位按钮(Toggle Button)、 单选按钮(Radio Button)、 复选框(Check Box)、 列表框(List Box)、 弹出框(Popup Menu)、 编辑框(Edit Box)、滑动条(Slider)、 静态文本(Static Text)、边框(Frame)。 (2) 对话框的设计 eq \o\ac(○,1)建立控件对象 MATLAB提供了用于建立控件对象的函数uicontrol,其调用格式为: 对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…) 其中各个属性名及可取的值和前面介绍的uimenu函数相似,但也不尽相同,下面将介绍一些常用的属性。 eq \o\ac(○,2)控件对象的属性 MATLAB得10种控件对象使用相同的属性类型,但是这些属性对于不同类型的控件对象,其含义不尽相同。除Children、Parent、Tag、Type、UserData、Visible等公共属性外,还有一些常用的特殊属性。 1.3.3 图形用户界面设计工具 (1) GUI设计模板 在MATLAB主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示图形用户界面的设计模板。 MATLAB为GUI设计一共准备了4种模板,分别是Blank GUI(默认) 、GUI with Uicontrols(带控件对象的GUI模板) 、GUI with Axes and Menu(带坐标轴与菜单的GUI模板)与Modal Question Dialog(带模式问话对话框的GUI模板)。 当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI图形。 (2) GUI设计窗口 在GUI设计模板中选中一个模板,然后单击OK按钮,就会显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设计窗口中显示的结果是不一样的。 GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。 (3) GUI设计窗口的基本操作 在GUI设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。例如,创建一个Push Button对象,并设计该对象的属性值。 对象属性查看器 利用对象属性查看器,可以查看每个对象的属性值,也可以修改、设置对象的属性值,从GUI设计窗口工具栏上选择Property Inspector命令按钮,或者选择View菜单下的Property Inspector子菜单,就可以打开对象属性查看器。另外,在MATLAB命令窗口的命令行上输入inspect,也可以看到对象属性查看器。 在选中某个对象后,可以通过对象属性查看器,查看该对象的属性值,也可以方便地修改对象属性的属性值。 (4) 菜单编辑器 利用菜单编辑器,可以创建、设置、修改下拉式菜单和快捷菜单。从GUI设计窗口的工具栏上选择Menu Editor命令按钮,或者选择Tools菜单下的Menu Editor子菜单,就可以打开菜单编辑器。 菜单编辑器左上角的第一个按钮用于创建一级菜单项。第二个按钮用于创建一级菜单的子菜单。 菜单编辑器的左下角有两个按钮,选择第一个按钮,可以创建下拉式菜单。选择第二个按钮,可以创建Context Menu菜单。选择它后,菜单编辑器左上角的第三个按钮就会变成可用,单击它就可以创建Context Menu主菜单。在选中已经创建的Context Menu主菜单后,可以单击第二个按钮创建选中的Context Menu主菜单的子菜单。与下拉式菜单一样,选中创建的某个Context Menu菜单,菜单编辑器的右边就会显示该菜单的有关属性,可以在这里设置、修改菜单的属性。 菜单编辑器左上角的第四个与第五个按钮用于对选中的菜单进行左移与右移,第六与第七个按钮用于对选中的菜单进行上移与下移,最右边的按钮用于删除选中的菜单。 (5) 位置调整工具 利用位置调整工具,可以对GUI对象设计区内的多个对象的位置进行调整。从GUI设计窗口的工具栏上选择Align Objects命令按钮,或者选择Tools菜单下的Align Objects菜单项,就可以打开对象位置调整器。 对象位置调整器中的第一栏是垂直方向的位置调整。对象位置调整器中的第二栏是水平方向的位置调整。在选中多个对象后,可以方便的通过对象位置调整器调整对象间的对齐方式和距离。 (6) 对象浏览器 利用对象浏览器,可以查看当前设计阶段的各个句柄图形对象。从GUI设计窗口的工具栏上选择Object Browser命令按钮,或者选择View菜单下的Object Browser子菜单,就可以打开对象浏览器。例如,在对象设计区内创建了3个对象,它们分别是Edit Text、Push Button、ListBox对象,此时单击Object Browser按钮,可以看到对象浏览器。 在对象浏览器中,可以看到已经创建的3个对象以及图形窗口对象figure。用鼠标双击图中的任何一个对象,可以进入对象的属性查看器界面。 (7) Tab顺序编辑器 利用Tab顺序编辑器(Tab Order Editor),可以设置用户按键盘上的Tab键时,对象被选中的先后顺序。选择Tools菜单下的Tab Order Editor菜单项,就可以打开Tab顺序编辑器。例如,若在GUI设计窗口中创建了3个对象,与它们相对应的Tab顺序编辑器。 2 坐标转换的基本理论 一个完整的坐标系统是由坐标系和基准两方面要素所构成的。坐标系指的是描述空间位置的表达形式,而基准指的是为描述空间位置而定义的一系列点、线、面。在大地测量中的基准一般是指为确定点在空间中的位置,而采用的地球椭球或参考椭球的几何参数和物理参数,及其在空间的定位、定向方式,以及在描述空间位置时所采用的单位长度的定义。 2.1坐标系的分类 2.1.1坐标系的分类 所谓坐标系指的是描述空间位置的表达形式,即采用什么方法来表示空间位置。人们为了描述空间位置,采用了多种方法,从而也产生了不同的坐标系,如直角坐标系、极坐标系等。在测量中,常用的坐标系有以下几种: (1) 空间直角坐标系 空间直角坐标系的坐标系原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴指向起始子午面与赤道的交点,Y轴位于赤道面上,且按右手系与X轴呈90°夹角。某点在空间中的坐标可用该点在此坐标系的各个坐标轴上的投影来表示。(见图2.1) 图2.1 空间直角坐标系 (2) 空间大地坐标系 空间大地坐标系是采用大地经、纬度和大地高来描述空间位置的。纬度是空间的点与参考椭球面的法线与赤道面的夹角,经度是空间中的点与参考椭球的自转轴所在的面与参考椭球的起始子午面的夹角,大地高是空间点沿参考椭球的法线方向到参考椭球面的距离。 图2.2 空间大地坐标系 (3) 平面直角坐标系 平面直角坐标系是利用投影变换,将空间坐标(空间直角坐标或空间大地坐标)通过某种数学变换映射到平面上,这种变换又称为投影变换。投影变换的方法有很多,如UTM投影、Lambuda投影等,在我国采用的是高斯-克吕格投影,也称为高斯投影。 2.1.2常用的坐标系统 (1) WGS-84坐标系 WGS-84坐标系是目前GPS所采用的坐标系统,GPS所发布的星历参数就是基于此坐标系统的。 WGS-84坐标系统的全称是World Geodical System-84(世界大地坐标系-84),它是一个地心地固坐标系统。WGS-84坐标系统由美国国防部制图局建立,于1987年取代了当时GPS所采用的坐标系统―WGS-72坐标系统而成为GPS的所使用的坐标系统。 WGS-84坐标系的坐标原点位于地球的质心,Z轴指向BIH1984.0定义的协议地球极方向,X轴指向BIH1984.0的启始子午面和赤道的交点,Y轴与X轴和Z轴构成右手系。 WGS-84系所采用椭球参数为: (2.1) (2) 1954年北京坐标系 1954年北京坐标系是我国目前广泛采用的大地测量坐标系。该坐标系源自于原苏联采用过的1942年普尔科夫坐标系。 建国前,我国没有统一的大地坐标系统,建国初期,在苏联专家的建议下,我国根据当时的具体情况,建立起了全国统一的1954年北京坐标系。该坐标系采用的参考椭球是克拉索夫斯基椭球,该椭球的参数为: (2.2) 遗憾的是,该椭球并未依据当时我国的天文观测资料进行重新定位,而是由前苏联西伯利亚地区的一等锁,经我国的东北地区传算过来的,该坐标系的高程异常是以前苏联1955年大地水准面重新平差的结果为起算值,按我国天文水准路线推算出来的,而高程又是以1956年青岛验潮站的黄海平均海水面为基准。 1954年北京坐标系建立后,全国天文大地网尚未布测完毕,因此,在全国分期布设该网的同时,相应地进行了分区的天文大地网局部平差,以满足经济和国防建设的需要。局部平差是按逐级控制的原则,先分区平差一等锁系,然后以一等锁环为起算值,平差环内的二等三角锁,平差时网区的连接部仅作了近似处理,如有的仅取两区的平差值,当某些一等锁环内的二等网太大,在当时的计算条件下无法处理时,也进行了分区平差,连接部仍采用近似处理的方法。 由于当时条件的限制,1954年北京坐标系存在着很多缺点,主要表现在以下几个方面: eq \o\ac(○,1)克拉索夫斯基椭球参数同现代精确的椭球参数的差异较大,并且不包含表示地球物理特性的参数,因而给理论和实际工作带来了许多不便。 eq \o\ac(○,2)椭球定向不十分明确,椭球的短半轴既不指向国际通用的CIO极,也不指向目前我国使用的JYD极。参考椭球面与我国大地水准面呈西高东低的系统性倾斜,东部高程异常达60余米,最大达67米。 eq \o\ac(○,3)该坐标系统的大地点坐标是经过局部分区平差得到的,因此,全国的天文大地控制点实际上不能形成一个整体,区与区之间有较大的隙距,如在有的接合部中,同一点在不同区的坐标值相差1-2米,不同分区的尺度差异也很大,而且坐标传递是从东北到西北和西南,后一区是以前一区的最弱部作为坐标起算点,因而一等锁具有明显的坐标积累误差。 (3) 1980年西安大地坐标系 1978年,我国决定重新对全国天文大地网施行整体平差,并且建立新的国家大地坐标系统,整体平差在新大地坐标系统中进行,这个坐标系统就是1980年西安大地坐标系统。1980年西安大地坐标系统所采用的地球椭球参数的四个几何和物理参数采用了IAG 1975年的推荐值,它们是 (2.3) 椭球的短轴平行于地球的自转轴(由地球质心指向1968.0 JYD地极原点方向),起始子午面平行于格林尼治平均天文子午面,椭球面同似大地水准面在我国境内符合最好,高程系统以1956年黄海平均海水面为高程起算基准。 2.1.3 地球椭球的基本几何参数及其相互关系 (1) 地球椭球的基本几何参数 地球椭球:在控制测量中,用来代表地球的椭球,它是地球的数学模型。 参考椭球:具有一定几何参数、定位及定向的用以代表某一地区大地水准面的地球椭球。地面上一切观测元素都应归算到参考椭球面上,并在这个面上进行计算。参考椭球面是大地测量计算的基准面,同时又是研究地球形状和地图投影的参考面。 地球椭球的几何定义: 是椭球中心, 为旋转轴, 为长半轴, 为短半轴。 子午圈:包含旋转轴的平面与椭球面相截所得的椭圆。 纬圈:垂直于旋转轴的平面与椭球面相截所得的圆,也叫平行圈。 赤道:通过椭球中心的平行圈。 地球椭球的五个基本几何参数: 椭圆的长半轴 椭圆的短半轴 椭圆的扁率: (2.4) 椭圆的第一偏心率: (2.5) 椭圆的第二偏心率: (2.6) 图2.3 地球椭球的定义 其中 、 称为长度元素;扁率 反映了椭球体的扁平程度。偏心率 和 是子午椭圆的焦点离开中心的距离与椭圆半径之比,它们也反映椭球体的扁平程度,偏心率愈大,椭球愈扁。 两个常用的辅助函数,W第一基本纬度函数,V第二基本纬度函数: (2.7) 我国建立1954年北京坐标系应用的是克拉索夫斯基椭球;建立1980年国家大地坐标系应用的是1975年国际椭球;而全球定位系统(GPS)应用的是WGS-84系椭球参数。 表2.1 几种常见的椭球体参数值 Tab. 2.1 Several familiar parameters of the spheroid 克拉索夫斯基椭球体 1975年国际椭球体 WGS-84椭球体 6378245.000000000 (m) 6356863.018773047 (m) 6399698.901782711 (m) 1/298.3 0.006693421622966 0.006738525414683 6378140.000000000(m) 6356755.288157528(m) 6399596.651988010(m) 1/298.257 0.006694384999588 0.006739501819473 6378137.000000000(m) 6356752.3142(m) 6399593.6258(m) 1/298.257223563 0.0066943799013 0.00673949674227 (2) 地球椭球参数间的相互关系 其他元素之间的关系式如下: (2.8) (2.9) 式中,W第一基本纬度函数,V第二基本纬度函数。 2.1.4子午线弧长和底点纬度的计算 (2)子午线弧长计算公式 图2.4子午线弧长的计算 子午椭圆的一半,它的端点与极点相重合;而赤道又把子午线分成对称的两部分。 如图所示,取子午线上某微分弧 ,令 点纬度为 , 点纬度为 , 点的子午圈曲率半径为 于是有: (2.10) 从赤道开始到任意纬度 的平行圈之间的弧长可由下列积分求出: (2.11) 式中M可用下式表达: (2.12) 其中: (2.13) 经积分,进行整理后得子午线弧长计算式: (2.14) 为求子午线上两个纬度 及 间的弧长,只需按上式分别算出相应的 及 ,而后取差: ,该 即为所求的弧长。 克拉索夫斯基椭球子午线弧长计算公式: (2.15) (2.16) 1975年国际椭球子午线弧长计算公式: (2.17) (2.18) (3)底点纬度计算 在高斯投影反算时,已知高斯平面直角坐标 反求其大地坐标 。首先X当作中央子午线上弧长,反求其纬度,此时的纬度称为底点纬度或垂直纬度。计算底点纬度的公式可以采用迭代解法和直接解法。 eq \o\ac(○,1)迭代法 在克拉索夫斯基椭球上计算时,迭代开始时设 (2.19) 以后每次迭代按下式计算: (2.20) (2.21) 重复迭代直至 为止。 在1975年国际椭球上计算时,也有类似公式。 eq \o\ac(○,2)直接解法 1975年国际椭球: (2.22) (2.23) 克拉索夫斯基椭球: (2.24) (2.25) 2.2 高斯投影的基本概念 2.2.1 基本概念 如图2.5所示,假想有一个椭圆柱面横套在地球椭球体外面,并与某一条子午线(此子午线称为中央子午线或轴子午线)相切,椭圆柱的中心轴通过椭球体中心,然后用一定投影方法,将中央子午线两侧各一定经差范围内的地区投影到椭圆柱面上,再将此柱面展开即成为投影面,如图2.6所示,此投影为高斯投影。高斯投影是正形投影的一种。 图2.5高斯投影 图2.6投影平面坐标系 高斯投影 带:自 子午线起每隔经差 自西向东分带,依次编号1,2,3,…。我国 带中央子午线的经度,由 起每隔 而至 ,共计11带(13~23带),带号用 表示,中央子午线的经度用 表示,它们的关系是 ,如图3所示。 高斯投影 带:它的中央子午线一部分同 带中央子午线重合,一部分同 带的分界子午线重合,如用 表示 带的带号, 表示 带中央子午线经度,它们的关系 。我国 带共计22带(24~45带)。  图2.7 分带投影 (1) 高斯平面直角坐标系 在投影面上,中央子午线和赤道的投影都是直线,并且以中央子午线和赤道的交点 作为坐标原点,以中央子午线的投影为纵坐标X轴,以赤道的投影为横坐标Y轴。 在我国 坐标都是正的, 坐标的最大值(在赤道上)约为330km。为了避免出现负的横坐标,可在横坐标上加上500 000m。此外还应在坐标前面再冠以带号。这种坐标称为国家统一坐标。 (2) 高斯平面投影的特点 eq \o\ac(○,1)中央子午线无变形; eq \o\ac(○,2)无角度变形,图形保持相似; eq \o\ac(○,3)离中央子午线越远,变形越大。 2.2.2 高斯投影坐标正算 高斯投影正算:已知椭球面上某点的大地坐标 ,求该点在高斯投影平面上的直角坐标 ,即 的坐标变换。 投影变换必须满足的条件 eq \o\ac(○,1)中央子午线投影后为直线; eq \o\ac(○,2)中央子午线投影后长度不变; 投影具有正形性质,即正形投影条件。 eq \o\ac(○,3)投影过程 在椭球面上有对称于中央子午线的两点 和 ,它们的大地坐标分别为 及 ,式中 为椭球面上 点的经度与中央子午线 的经度差: , 点在中央子午线之东, 为正,在西则为负,则投影后的平面坐标一定为 和 。 2.2.3 高斯投影坐标反算 (1) 高斯投影反算:已知某点的高斯投影平面上直角坐标 ,求该点在椭球面上的大地坐标 ,即 的坐标变换。 (2) 投影变换必须满足的条件 eq \o\ac(○,1)坐标轴投影成中央子午线,是投影的对称轴; eq \o\ac(○,2)轴上的长度投影保持不变; eq \o\ac(○,3)投影具有正形性质,即正形投影条件。 (3) 投影过程 根据 计算纵坐标在椭球面上的投影的底点纬度 ,接着按 计算( )及经差 ,最后得到 、 。 2.3.4高斯投影相邻带的坐标换算 (1) 产生换带的原因 高斯投影为了限制高斯投影的长度变形,以中央子午线进行分带,把投影范围限制在中央子午线东、西两侧一定的范围内。因而,使得统一的坐标系分割成各带的独立坐标系。在工程应用中,往往要用到相邻带中的点坐标,有时工程测量中要求采用 带、 带或任意带,而国家控制点通常只有 带坐标,这时就产生了 带同 带(或 带、任意带)之间的相互坐标换算问题,如图2.8所示: 图2.8换带计算 (2) 应用高斯投影正、反算公式间接进行换带计算 eq \o\ac(○,1)计算过程 把椭球面上的大地坐标作为过渡坐标。首先把某投影带(比如Ⅰ带)内有关点的平面坐标 ,利用高斯投影反算公式换算成椭球面上的大地坐标 ,进而得到 ;然后再由大地坐标 ,利用投影正算公式换算成相邻带的(第Ⅱ带)的平面坐标 。在这一步计算时,要根据第Ⅱ带的中央子午线 来计算经差 ,亦即此时 。 eq \o\ac(○,2)算例 在中央子午线 的Ⅰ带中,有某一点的平面直角坐标 , ,现要求计算该点在中央子午线 的第Ⅱ带的平面直角坐标。 第一,根据 , ,利用高斯反算公计算换算得到 , , , 。 第二,采用已求得的 , ,并顾及到第Ⅱ带的中央子午线 ,求得 ,利用高斯正算公式计算第Ⅱ带的直角坐标 , 。 第三,为了检核计算的正确性,要求每步都应进行往返计算。 2.3地方独立平面坐标系 平面坐标转换是二维坐标转换,其任务是把一个坐标系的坐标通过某种投影变换,得到另一种坐标系的坐标,习惯上投影变换的数学表达称为坐标转换模型,把投影变换的特征参数的确定过程叫模型求解,把一个坐标系的坐标通过模型计算出另一种坐标系的坐标的过程叫坐标转换。 为满足小范围、大比例尺地形图精度的需要,通过在特定区域范围内建立起一个本地基准点而创建适用于本地的独立坐标系,它通常由专门测绘部门测定建立,,它可以用坐标换算公式对四参数或七参数的正确设置与地理坐标系等进行转换,但必须首先取得该独立坐标系换算所用的中央经线值。 2.3.1 工程测量中几种可能采用的直角坐标系 (1)国家 带高斯正形投影平面直角坐标系 当测区平均高程在l00m以下,且 值不大于40km时,其投影变形值 及 均小于2.5cm,可以满足大比例尺测图和工程放样的精度要求。,在偏离中央子午线不远和地面平均高程不大的地区,不需考虑投影变形问题,直接采用国家统一的 带高斯正形投影平面直角坐标系作为工程测量的坐标系。 (2)抵偿投影面的 带高斯正形投影平面直角坐标系 在这种坐标系中,依然采用国家 带高斯投影,但投影的高程面不是参考椭球面而是依据补偿高斯投影长度变形而选择的高程参考面。在这个高程参考面上,长度变形为零。令 (2.26) 于是,当 一定时,可求得: (2.27) 则投影面高为: (2.28) (3)任意带高斯正形投影平面直角坐标系 在这种坐标系中,仍把地面观测结果归算到参考椭球面上,但投影带的中央子午线不按国家 带的划分方法,而是依据补偿高程面归算长度变形而选择的某一条子午线作为中央子午线。这就是说,在2.26式中,保持 不变,于是求得 (2.29) 但在实际应用这种坐标系时,往往是选取过测区边缘,或测区中央,或测区内某一点的子午线作为中央子午线,而不经过上述的计算。 (4)具有高程抵偿面的任意带高斯正形投影平面直角坐标系 在这种坐标系中,往往是指投影的中央子午线选在测区的中央,地面观测值归算到测区平均高程面上,按高斯正形投影计算平面直角坐标。由此可见,这是综合第二、三两种坐标系长处的一种任意高斯直角坐标系。显然,这种坐标系更能有效地实现两种长度变形改正的补偿。 (5)假定平面直角坐标系 当测区控制面积小于100km2时,可不进行方向和距离改正,直接把局部地球表面作为平面建立独立的平面直角坐标系。这时,起算点坐标及起算方位角,最好能与国家网联系,如果联系有困难,可自行测定边长和方位,而起始点坐标可假定。这种假定平面直角坐标系只限于某种工程建筑施工之用。 3 坐标转换的数学模型 在GPS测量中,经常要进行坐标系变换与基准变换。所谓坐标系变换就是在不同的坐标表示形式间进行变换,基准变换是指在不同的参考基准间进行变换。 3.1坐标系变换 3.1.1 空间直角坐标系与空间大地坐标系间的转换 图3.1 空间直角坐标与大地坐标间的转换 (1) 在相同的基准下,空间大地坐标系向空间直角坐标系的转换方法为: EMBED Equation.3 (3.1) 其中: (3.2) (3.3) 为地球椭球长半轴; 为地球椭球的短半轴。 (2) 在相同的基准下,空间直角坐标系向空间大地坐标系的转换方法为: (3.4) 在采用上式进行转换时,需要采用迭代的方法,先将B求出,最后在确定H。 3.1.2 空间坐标系与平面直角坐标系间的转换 空间坐标系与平面直角坐标系间的转换采用的是投影变换的方法。在我国一般采用的是高斯投影。 (1) 高斯正算计算公式 (3.5) 当要求转换精度精确至0.OOlm时,用下式计算: (3.6) (2) 高斯反算计算公式 (3.7) 当要求转换精度至 时,可简化为下式: (3.8) 3.2基准转换 3.2.1 七参数转换公式 不同坐标系统的转换本质上是不同基准间的转换,不同基准间的转换方法有很多,其中,最为常用的有布尔沙模型,又称为七参数转换法。 七参数转换法是: 设两空间直角坐标系间有七个转换参数:3个平移参数、3个旋转参数和1个尺度参数。 图3.2 七参数转换 若: 为某点在空间直角坐标系A的坐标; 为该点在空间直角坐标系B的坐标; 为空间直角坐标系A转换到空间直角坐标系B的平移参数; 为空间直角坐标系A转换到空间直角坐标系B的旋转参数; 为空间直角坐标系A转换到空间直角坐标系B的尺度参数。 则由空间直角坐标系A到空间直角坐标系B的转换关系为: (3.9) 其中: EMBED Equation.3 (3.10) EMBED Equation.3 (3.11) EMBED Equation.3 (3.12) 一般 、 和 均为小角度,可以认为: 则有: EMBED Equation.3 EMBED Equation.3 (3.13) 也可将转换公式表示为: (3.14) EMBED Equation.3 EMBED Equation.3 EMBED Equation.3 (3.15) 3.2.2 四参数转换公式[13] 图3.3 设 为转换前原坐标, 为转换后的新坐标,a、b、c、d为未知的坐标转换临时变量,当有n个已知公共点时,按间接平差原理,则法方程式为: EMBED Equation.3 EMBED Equation.3 (3.16) 令: EMBED Equation.3 (3.17) 则: EMBED Equation.3 (3.18) (3.19) (3.20) (3.21) (3.22) 3.3坐标转换基本模型在测量实践和理论中的应用及分析 3.3.1 同一基准下坐标转换计算 同一基准下坐标转换问题实质上是不同表达形式坐标之间的转换,直接利用相应的转换模型就可以实现转换计算。 (1) 测量实践中的坐标正反算。数学上讲,这是极坐标和平面直角坐标之间的换算,应可实现两点间边长、方位角和坐标的相互换算,正算的关键是推算方位角,反算的关键是判断方位角所属象限。 (2) 换带计算.换带计算是相同基准下不同投影带的高斯平面直角坐标之间的转换计算,目前换带计算均采用高斯投影正、反算公式来完成,具体步骤为:由第一投影带的高斯平面直角坐标 按3.6式求出该点在椭球面上的大地坐标 ,再根据第二投影带的轴子午线经度 以及该点反算出的 按3.8式,求出该点在第二带的高斯平面直角坐标 。 3.3.2 不同基准下坐标转换计算 先要利用控制网中的多于必要个数的重合点,采用最小二乘严密平差解算转换参数,这些重合点具有可靠性、精度高,在控制网中分布均匀、覆盖的范围大,建立具体的转换模型,进而实现其它控制点的转换计算,并用和重合点的距离定权对公共点加以配置,解决转换前后坐标不完全一致的矛盾。 (1) 54国家大地坐标、8O国家大地坐标、WGS一84地心大地坐标之间的转换计算.这是不同基准下的坐标转换.直接采用国家54系统克拉索夫斯基椭球 、国家8O系统定位定向后75椭球 ,WGS-84椭球 的相互间旋转、平移、比例、长半轴以及扁率因子9个参数,它是建立国家大地基准时确定的权威系统参数,然后按3.14式实现换算。 (2) 54参心、8O参心、WGS-84地心空间直角坐标之间的转换计算。54参心、8O参心、WGS-84地心空间直角坐标之间的转换属于不同基准下的坐标转换.在实际工作中根据不同的精度要求可以采用三点法、多点法、严密平差法先求出旋转、平移、尺度因子共7个参数,然后应用3.14式实现转换计算. (3) 一地方独立平面坐标与另一地方独立平面坐标之间换算.在实践中利用多个重合点采用最小二乘法解求出旋转、平移、尺度因子共4个参数,然后应用3.19-3.22式实现其它点的转换计算。 (4) GPS网在WGS-84坐标系中的三维平差结果到实用地面参心坐标的换算⋯.无论取重心基准还是单点定位值作为位置基准,由于GPS单点定位精度不高,因此,GPS网在WGS一84坐标系中平差后各个GPS点在WGS-84坐标系中的坐标值精度也较低,但相对于网的位置基准则具有相当高的精度。为此,转换时不能使用已知的系统转换参数,而必须应用三点法、多点法、严密平差法解求转换参数确定转换模型,再求全网其它GPS点的实用地面参心坐标。 (5) GPS点在 椭球上的大地坐标到 椭球上的大地坐标计算。实际上属于不同大地坐标系统之间的转换的一种特殊情况。 (3.23) (6) 54国家高斯平面坐标到8O国家高斯平面坐标的转换计算 如果已知两坐标系统的大地坐标改正数 , ,则第l步用把 换成 ;第2步计算 ;第3步按3.6式,把 转换成 . (7) 国家高斯平面坐标和地方独立平面坐标之间换算。已知起算点 , 的国家高斯平面坐标 , 和 , 的地方独立平面坐标 , 。 第l步:应用3.8式计算出 , 在 椭球下对应的大地坐标;第2步:应用3.23式计算出 , 在 椭球上对应的大地坐标;第3步:应用3.6式计算 , 在 椭球下的高斯平面坐标;第4步:由 , 的在 椭球下的高斯平面坐标和地方独立平面坐标计算平移、旋转参数;第5步:应用3.19-3.22式实现其它任意点 在椭球下的高斯平面坐标和地方独立平面坐标之间的换算;第6步:应用3.8、3.23式分别计算出 在椭球下 , 大地坐标;第6步:应用3.6式计算出任意点 在 椭球下的高斯平面坐标. 4 坐标转换程序设计 4.1程序整体设计 4.1.1 参数设计 (1) 参数设计模块 此模块包括参考椭球设置、四参数设置和七参数设置。不同的坐标系不同的参考椭球间进行转换时,其相对应的参考椭球半径、偏心率等参数也不同。 系统提供了西安80坐标系、北京54坐标系、WGS-84坐标系等参考椭球参数的选择设置四参数设置是用于不同高斯平面之间的进行转换;七参数转换是用于不同的空间直角坐标系的转换,用户以根据实际情况进行选定设置 (2) 参数计算模块 eq \o\ac(○,1)七参数计算 当空间直角坐标在不同的参考椭球之间进行转换时,通常采用三参数法和七参数法,当这些参数未知的情况下,可以利用原椭球和目标椭球下的三对空间直角坐标进行计算当两个坐标系的轴部平行,且坐标原点不重合时,利用三参数法进行转换;当两个坐标系的轴不平行,且坐标原点不重合时,用七参数法转换。三参数法是七参数法的特殊情况。 、 、 、 、 、 、 为两个坐标系之间的变换参数,分别为坐标平移量、角度旋转量和变换尺度。 eq \o\ac(○,2)四参数计算 当平面直角坐标在不同的参考椭球下进行转换时可以利用四参数法来实现,参数未知的情况下,可以通过原椭球和目标椭球条件下两个坐标系的两对坐标利用最小二乘法计算求得, 、 、 、 为两个坐标轴之间变换参数,分别为坐标平移量、角度旋转量和变换尺度。 (3) 转换方式模块 此模块包括坐标转换采用单点转换方式还是文件转换方式。如果是单点转换,用户在界面上输入原坐标以后按“转换’按钮,则可在另一文本框中得到转换后的坐标。文件转换是对转换前后坐标数据、转换参数采用文件化管理,用户可以将一种转换作为一个文件保存下来,下次使用时从文件奖单中选择打开这个文件来调用所有已有的转换参数,也可以自己设置文件格式。 (4) 坐标换带模块 坐标换带模块首先要进行参数设置,包括坐标换带前后的基准纬度、中央子午线经度、参考椭球及换带类型进行设置。然后把原坐标利用高斯坐标反算函数转换成大地坐标。再利用大地坐标的纬度、新的中央子午线经度与计算出的经度之和利用坐标正算函数,得到新投影带下的坐标。同时应考虑坐标是通用值还是自然值的情况。 4.1.2 坐标转换模块 此模块包括不同平面直角坐标系之间的转换、空间直角坐标系向大地坐标的转换、不同大地坐标之间的转换、不同高斯平面直角坐标系之间的转换和不同坐标投影带之间的转换 (1) 高斯平面直角向平面直角坐标转换:当参考椭球不变时,坐标转换前后不变;当参考椭球变化时,则根据不同的参考椭球参数和四参数转换参数对坐标进行转换。 (2) 高斯平面直角坐标向大地坐标转换(高斯反算):当参考椭球不变时,可利用高斯坐标反算公式进行转换。参考椭球变化时,要根据不同的参考椭球参数和四参数首先把高斯平面直角坐标转换成目标参考椭球下的平面直角坐标,然后再利用高斯反算公式将它转换成目标椭球下的大地坐标。 (3) 高斯平面直角坐标向空间直角坐标系转换:当参考椭球不变时,首先将平面直角坐标转换成大地坐标,然后把大地坐标转换成空间直角坐标。当参考椭球变化时,则首先把平面直角坐标转换成大地坐标,然后转换成空间直角坐标以后,根据不同的参考椭球参数和七参数转换参数把空间直角坐标转换到目标参考椭球下的空间直角坐标 (4) 大地坐标向大地坐标转换:当参考椭球不变时,转换前后坐标值不变;参考椭球变化时,首先大地坐标转换成空间直角坐标;再利用七参数转换成目标椭球下的空间直角坐标,然后再转换成目标椭球下的大地坐标 (5) 大地坐标向空间直角坐标转换:当参考椭球不变时;可直接运用公式对坐标进行转换;当参考棉球变化时,要首先把大地坐标转换成原椭球下的空间直角坐标,然后利用七参数转换成目标椭球下的空间直角坐标 (6) 大地坐标向平面直角坐标转换(高斯正算);参考椭球不变时;利用高斯坐标正算公式直接进行转换。当参考椭球变化的,首先将大地坐标转换成原椭球下的空间直角坐标再利用七参数转换到目标椭球下的空间直角坐标,然后转换成目标椭球的大地坐标。最后利用坐标正算公式进行坐标转换。 (7) 空间直角坐标转换成空间直角坐标:当参考椭球不变对,转换前后坐标不变;当参考椭球变化时,应利用七参数法把坐标转换成目标椭球下的空间直角坐标。 (8) 空间直角坐标转换成大地坐标:当参考椭球不变时;直接把空间坐标转换成大地坐标;当参考椭球变化时,首先把空间直角坐标利用六参数转换成目标椭球下的空间直角坐标,然后转换成目标椭球下的大地坐标 (9) 空间直角坐标转换成平面直角坐标:当参考椭球不变时,空间直角坐标首先转换成大地坐标,然后利用高斯坐标正算公式转换成平面直角坐标;当参考椭球变化时,空间直角坐标首先要经过七参数转换成目标椭球的空间直角上标,然后转换成目标椭球下的大地坐标,再利用高斯坐标正算公式转换成平面直角坐标 4.1.3 程序功能设计图 图4.1程序功能设计图 4.2利用MATLAB实现坐标转换的函数 4.2.1 程序基本函数 见附录 4.2.2 坐标转换类函数 见附录 4.2.3 GUI程序代码 见附录 4.2.4 基于GUI程序界面设计 (1) 同一基准下坐标转换计算程序设计框图 图4.2 程序设计框图 (2) 算例 eq \o\ac(○,1)选择坐标源类型和目标类型 图4.3 初始界面 eq \o\ac(○,2)选择坐标转换类型 图4.4 选择坐标转换类型 eq \o\ac(○,3)打开文件 图4.5 打开文件对话框 eq \o\ac(○,4)点击转换按钮 图4.6 转换后界面 eq \o\ac(○,5)保存数据 图4.7 保存文件对话框 (3) 不同基准下坐标转换计算程序设计框图 图4.8 程序设计框图 (4) 算例 eq \o\ac(○,1)选择坐标转换类型 图4.9 选择坐标转换类型 eq \o\ac(○,2)输入七参数 图4.10 七参数设置窗口 eq \o\ac(○,3)输入原始坐标,点击转换 图4.11 转换结果窗口 (5) 反算七参数,算例 eq \o\ac(○,1)点击计算七参数 图4.12 计算七参数窗口 eq \o\ac(○,2)输入公共点坐标数据 图4.13 选择公共点坐标数据对话框 eq \o\ac(○,3)得到结果 图4.14 运算结果界面 (6) 坐标换带计算,算例 输入原投影参数和目标投影参数,然后输入源坐标,点击转换,得到结果。 图4.14 运算结果界面 结 论 通过本文的研究,利用MATLAB软件进行应用性开发,开发出了工程测量很关键的坐标转换软件。程序解决了工程测量技术人员在运算方面所能遇见的一些常见的坐标转换计算和数据分析处理问题。程序的运算功能设计合理,界面友好,用户使用方便,操作简易。该程序能帮助工程技术人员、科研人员从繁锁的数据运算和数据分析处理中解脱出来,同时也避免了为解决坐标转换问题而专门花精力,大大减轻了用户的工作量,使用户有更多的精力用在其它方面。 坐标转换一直是专业性强且不易解决的问题,开发出一套既运算速度快又能保持高精度的坐标转换软件,将会给经济建设、科学技术和国防提供便利、高效的服务。针对复杂的坐标转换计算过程,利用MTATLAB实现了不同坐标系统的转换,使用户能够简单、方便地实现不同坐标系统中单点、批量点的坐标转换,针对目前坐标转换软件功能单一、操作不方便等问题,采用窗口、菜单、控件的操作方式,实现了所见即所得的人性化界面设计。 由于时间紧再加个人能力的限制,本程序开发得还不够深入全面,未来需要进一步开展的工作,可以从下面几个方面来开展: (1) 现在的程序需要在MATLAB环境下才能运行,下一步需要研究将系统转换成在Windows环境下能运行的程序。 (2) 对运算结果的显示输出中,是用文本文件输出,下一步要研究将其改进为GPS或是全站仪支持的数据格式进行输出,使用户直接进行工程测量工作。 (3) 在系统的功能方面,各坐标基准转换精度有待加强,下一步需要研究进一步解决。 解决了以上问题,才能真正满足目前施工一线测量人员的需求。这是我今后工作学习生活中应不断努力的,争取能够早日完善它。 参考文献 [1] 刘亚静,毛善君,郭达志等.基于VC++的坐标系统转换设计与实现[J].湖南科技大学学报(自然科学版).2006.9(3):61-64. [2] MATLAB联机文档 [3]王沫然.MATLAB与科学计算[M].北京:电子工业出版社,2004.2. [4]姚连璧,周小平.基于MATLAB的控制网平差程序设计[M].上海:同济大学出版社,2006.4. [5]边少锋,柴洪洲,金际航 大地坐标系与大地基准[M] 北京:国防工业出版社,2005.5. [6]孔祥元,郭际明,刘宗泉.大地测量学基础[M].武汉:武汉大学出版社,2006.1. [7]李开友. 基于MATLAB的工程运算可视化系统的设计与实现:(硕士学位论文). 昆明理工大学,2006. [8]董钧祥,杨德宏.测量坐标转换模型及其应用[J].昆明理工大学学报(理工版).2006.4(3):1-4. [9]刘大杰,施一民.全球定位系统(GPS)的原理与数据处理[M].上海:同济大学出版社,1996. [10]孔祥元,梅是义.控制测量学(下)[M].武汉:武汉大学出版社,2002. [11]施一民.现代大地控制测量[M].上海:同济大学出版社,2003.6. [12]陈清礼,胡家华.大地坐标转换程序[J].江汉石油学院学报.1998.3(1):45-49. [13]范新云.利用GPS测定地方坐标系转换的四参数法[J].海洋测绘.2005.7(4):35-37. [14]Bowring B. R.. Transformation from Spatial to Geographic Coordinates. Survey Review. No.181,1987 [15]Paul,M. K.. A Note on Computation of Geographic Coordinates. Bulletin Geodesique. No.108,1978 附 录 % -------------------------------------------------------------------- % -------------------------------------------------------------------- 椭球参数tqcs.m % -------------------------------------------------------------------- global cs% 定义cs为全局变量 cs=[6378245 1/298.3 6378140 1/298.257 6378137 1/298.257223563]; %三个常用的坐标系的长半轴、扁率 % -------------------------------------------------------------------- 度分秒转化为弧度d2r.m % -------------------------------------------------------------------- function y=d2r(x) D=fix(x); M=fix(100*(D-fix(x))); S=10000*(x-D-M/100); y=(D+M/60+S/3600)*pi/180; % -------------------------------------------------------------------- 弧度转化为度分秒d2r.m % -------------------------------------------------------------------- function y=r2d(x) D=fix(x*180/pi); M=fix((x*180/pi-D)*60); S=fix((x*180/pi-D-(M/60))*3600); y=D+M/100+S/10000; % -------------------------------------------------------------------- 空间直角坐标转换为大地坐标转换函数kj2dd.m % -------------------------------------------------------------------- function BLH=kj2dd(a,Bl,XYZ) format long g global BLH BLH=[]; for i = 1 :size(XYZ,1) X=XYZ(i,1);Y=XYZ(i,2);Z=XYZ(i,3);%将输入数据分配给变量 b=a*(1-Bl); e=sqrt(a^2-b^2)/a; L=atan(Y/X);%求大地经度 if L<0 L=L+pi; end B(1)=atan((Z/sqrt(X^2+Y^2))*(1+e^2)); for i=1:4%迭代求大地纬度 B(i+1)=atan((1/sqrt(X^2+Y^2))*(Z+(a*e^2*tan(B(i))/(sqrt(1+(1-e^2)*tan(B(i))))))); end Bn=B(i+1); H=sqrt(X^2+Y^2)*cos(Bn)+Z*sin(Bn)-a/sqrt(1-sin(Bn)^2*e^2)*(1-sin(Bn)^2*e^2);%求大地高 Bn=r2d(Bn); L=r2d(L); BLH=[BLH;Bn L H]; End % -------------------------------------------------------------------- % -------------------------------------------------------------------- 大地坐标转换成空间直角坐标函数dd2kj.m % -------------------------------------------------------------------- function XYZ=dd2kj(a,Bl,BB) format long g global XYZ; B=BB(:,1);L=BB(:,2);H=BB(:,3); %将输入数据分配给变量 b=a*(1-Bl); e=sqrt(a^2-b^2)/a; B=d2r(B); L=d2r(L); N=a./sqrt(1-sin(B).^2.*e^2); X=(N+H).*cos(B).*cos(L); Y=(N+H).*cos(B).*sin(L); Z=(N.*(1-e^2)+H).*sin(B); XYZ=[X Y Z]; % -------------------------------------------------------------------- % -------------------------------------------------------------------- 大地坐标向高斯平面直角坐标转换函数dd2ty.m % -------------------------------------------------------------------- function xyh=dd2ty(a,Bl,v,Y0,ML,BB) global xyh B=BB(:,1);L=BB(:,2);H=BB(:,3); B=d2r(B);l=d2r(L-ML); b=a*(1-Bl); e=sqrt(a^2-b^2)/a;%e为第一偏心率 e2=sqrt(a^2-b^2)/b;%e2为第二偏心率 N=a./sqrt(1-sin(B).^2*e^2); %简化替代符号表示 c=a^2/b; t=tan(B); g=e2.*cos(B); Itp = (e2 .* cos(B) ).^ 2; %高斯投影坐标正算公式 if v==1 X=111134.861.*r2d(B)-32005.780.*sin(B).*cos(B)-133.929.*sin(B).^3.*cos(B)-0.697.*sin(B).^5.*cos(B);%克拉索夫椭球元素值 else X=111133.005.*r2d(B)-32009.858.*sin(B).*cos(B)-133.960.*sin(B).^3.*cos(B)-0.698.*sin(B).^5.*cos(B);%1975年国际椭球元素值 end m=cos(B).*l; x = X + N .* t .* m.^ 2 / 2 + N .* t .* (5 - t .^2 + 9 * Itp + 4 * Itp.^2) .* m .^ 4 / 24 + N .* t .* (61 - 58 * t.^ 2 + t.^ 4 + 270 * Itp - 330 * t.^ 2 .* Itp) .* m .^ 6 / 720 + N .* t .* (1385 - 3111 * t .^ 2 + 543 * t.^ 4 - t .^ 6) .* m.^ 8 / 40320; %x=X+N..*t.*((0.5+((5-t.^2+9..*g^2+4..*g.^4)./24+((61-58..*t.^2+t.^4)..*m.^2./720))..*m.^2)..*m.^2)..*m; y = N .* m + N .* (1 - t .^2 + Itp) .* m .^ 3 / 6 + N .* (5 - 18 * t .* t + t.^ 4 + 14 * Itp - 58 * Itp .* t .* t) .* m .^ 5 / 120 + N .* (61 - 479 .* t .^ 2 + 179 * t .^ 4 - t .^ 6) .* m.^ 7 / 5040; %y=500000+N..*((1+((1-t.^2+g.^2)/6+(5-18..*t.^2+t.^4+14..*g.^2-58..*g.^2..*t.^2)..*m.^2/120))..*m.^2)..*m; y= Y0 + y; xyh=[x y H]; % -------------------------------------------------------------------- % -------------------------------------------------------------------- 高斯平面直角坐标向大地坐标转换函数ty2dd.m % -------------------------------------------------------------------- function BLH=ty2dd(a,Bl,v,Y0,ML,xyh) global BLH x=xyh(:,1);y= xyh(:,2);h=xyh(:,3); x = x * 0.000001; y = y - Y0; if v==1 bt= x /a Bf = 9.04353301294 * x - 0.00000049604 * x .^ 2 - 0.00075310733* x .^ 3 - 0.00000084307* x .^ 4 - 0.00000426055* x .^ 5 - 0.00000010148* x .^ 6; else Bf = 9.04369066313 * x - 0.00000049618 * x .^ 2 - 0.00075325505* x .^ 3 - 0.0000008433* x .^ 4 - 0.00000426157* x.^ 5 - 0.0000001015* x .^ 6; end b=a*(1-Bl); e=sqrt(a^2-b^2)/a;%e为第一偏心率 e2=sqrt(a^2-b^2)/b;%e2为第二偏心率 Bf = d2r(Bf); w1 = sin(Bf); w2 = 1.0 - e^2 .* w1.^2; w = sqrt(w2); w3 = cos(Bf); w4 = a^2.*w3.^2 + b^2.*w1.^2; Mf = a*(1-e^2)./w.^3; tf=tan(Bf); Nf = a^2 ./ sqrt(w4); Vf=Nf./Mf; gf=e2^2 .* w3.^2; B=Bf-(1/2).*Vf.^2.*tf.*((y./Nf).^2-((5+3.*tf.^2+gf.^2-9.*gf.^2.*tf.^2).*(y./Nf).^4/12)+((61+90.*tf.^2+45*tf.^2).*(y./Nf).^6)/360); B=r2d(B); l=(1./cos(Bf)).*((y./Nf)-(1+2.*tf.^2+gf.^2).*(y./Nf).^3/6+(5+28.*tf.^2+24*tf.^46.*gf.^2+8.*gf.^2.*tf.^2).*(y./Nf).^5); l=r2d(l); L=ML+l; BLH=[B L h]; % -------------------------------------------------------------------- % -------------------------------------------------------------------- 七参数计算函数burse.m % -------------------------------------------------------------------- function y = burse(X) global dX X1=X(:,1);Y1=X(:,2);Z1=X(:,3); X2=X(:,4);Y2=X(:,5);Z2=X(:,6); N=size(X1); n=N(1); B=zeros(3*n,7); for i=1:n %V(3*i:3*(i+1),1)=[VX2(i) VY2(i) Vy3(i)]; B((3*i-2):3*i,1:7)=-[1 0 0 X1(i) 0 -Z1(i) Y1(i) 0 1 0 Y1(i) Z1(i) 0 -X1(i) 0 0 1 Z1(i) -Y1(i) X1(i) 0]; %dX=[dX0 dX0 dX0 a1 a2 a3 a4]'; L(3*i-2:3*i,1)=[X2(i) Y2(i) Z2(i)]'; end P=eye(3*n); dX=-inv(B'*P*B)*B'*P*L; % -------------------------------------------------------------------- % -------------------------------------------------------------------- 四参数计算函数jd4cs.m % -------------------------------------------------------------------- function y = jd4cs(XY) global dY xs=XY(:,1);ys=XY(:,2);XT=XY(:,3);YT=XY(:,4); n=size(XY,1); xm=ssum(xs)/n;ym=ssum(ys)/n;dxs=xs-xm;dys=ys-ym; Xm=ssum(XT)/n;Ym=ssum(YT)/n;dXT=XT-Xm;dYT=YT-Ym; c=ssum(dxs.*dXT+dys.*dYT)/ssum(dxs.^2+dys.^2); d=ssum(dys.*dXT-dxs.*dYT)/ssum(dxs.^2+dys.^2); a=xm-xm*c-ym*d; b=ym-ym*c+xm*d; K=sqrt(c*c+d*d)-1 de=asin(d/(1+k))*180/pi x0=a/(1+k) y0=b/(1+k) dY=[x0,y0,de,K] % -------------------------------------------------------------------- % -------------------------------------------------------------------- 主窗体mainf.m % -------------------------------------------------------------------- function varargout = mainf(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @mainf_OpeningFcn, ... 'gui_OutputFcn', @mainf_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function mainf_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; movegui(gcf,'center'); guidata(hObject, handles); global v v=1; function varargout = mainf_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function checkbox1_Callback(hObject, eventdata, handles) if get(hObject,'value')==1 msgbox('请在七参数设置窗口中输入七参数'); end function checkbox2_Callback(hObject, eventdata, handles) if get(hObject,'value')==1 msgbox('请在四参数设置窗口中输入四参数'); end function tqjz1_Callback(hObject, eventdata, handles) global v v=get(hObject,'value'); set(handles.tqjz2,'value',v); function pushbutton1_Callback(hObject, eventdata, handles) global a Bl XYZ BLH ML Y0 v xyh dx dy dz ex ey ez k XYZN x0 y0 de K XY tqcs; tqval=get(handles.tqjz1,'value'); switch tqval case 1 a=cs(1,1);Bl=cs(1,2); case 2 a=cs(2,1);Bl=cs(2,2); case 3 a=cs(3,1);Bl=cs(3,2); end format long if get(handles.r2,'value')==1 & get(handles.r5,'value')==1 XX=get(handles.e1,'string'); YY=get(handles.e2,'string'); ZZ=get(handles.e3,'string'); set(handles.e4,'string',XX); set(handles.e5,'string',YY); set(handles.e6,'string',ZZ); end %空间直角坐标转大地坐标 if get(handles.r1,'value')==1 & get(handles.r5,'value')==1 X=str2num(get(handles.e1,'string')); Y=str2num(get(handles.e2,'string')); Z=str2num(get(handles.e3,'string')); if X~=0 | Y~=0 | Z~=0 XX=[X,Y,Z]; kj2dd(a,Bl,XX); B=BLH(1); L=BLH(2); H=BLH(3); if Z>0 NF='N'; else NF='S'; end if Y>0 EW='E'; else EW='W'; end B=strcat(num2str(B),NF); L=strcat(num2str(L),EW); set(handles.e4,'string',B); set(handles.e5,'string',L); set(handles.e6,'string',H); end end if get(handles.r1,'value')==1 & get(handles.r6,'value')==1 XX=get(handles.e1,'string'); YY=get(handles.e2,'string'); ZZ=get(handles.e3,'string'); end %大地坐标转空间直角坐标 if get(handles.r2,'value')==1 & get(handles.r4,'value')==1 B=str2num(get(handles.e1,'string')); L=str2num(get(handles.e2,'string')); H=str2num(get(handles.e3,'string')); if B~=0 | L~=0 | H~=0 BBB=[B L H]; dd2kj(a,Bl,BBB); X=num2str(XYZ(1)); Y=num2str(XYZ(2)); Z=num2str(XYZ(3)); set(handles.e4,'string',X); set(handles.e5,'string',Y); set(handles.e6,'string',Z); end end %大地坐标转换为高斯投影坐标 if get(handles.r2,'value')==1 & get(handles.r6,'value')==1 if ML==0 msgbox('请先设置好投影参数','Warning','warn'); return; end B=str2num(get(handles.e1,'string')); L=str2num(get(handles.e2,'string')); H=str2num(get(handles.e3,'string')); if B~=0 | L~=0 | H~=0 BBB=[B L H]; dd2ty(a,Bl,v,Y0,ML,BBB); x=num2str(xyh(1)); y=num2str(xyh(2)); h=num2str(xyh(3)); set(handles.e4,'string',x); set(handles.e5,'string',y); set(handles.e6,'string',h); ML=0; end end %高斯投影坐标转换为大地坐标 if get(handles.r3,'value')==1 & get(handles.r5,'value')==1 if ML==0 msgbox('请先设置好投影参数','Warning','warn'); return; end x=str2num(get(handles.e1,'string')); y=str2num(get(handles.e2,'string')); h=str2num(get(handles.e3,'string')); if x~=0 | y~=0 | h~=0 xy=[x y h]; ty2dd(a,Bl,v,Y0,ML,xy); x=num2str(BLH(1)); y=num2str(BLH(2)); h=num2str(BLH(3)); set(handles.e4,'string',x); set(handles.e5,'string',y); set(handles.e6,'string',h); ML=0; end end %不同基准的空间直角坐标间转换(七参数转换) if get(handles.r1,'value')==1 & get(handles.r4,'value')==1 if get(handles.checkbox1,'value')==0 msgbox('请选中“七参数转换”多选框') return end X=str2num(get(handles.e1,'string')); Y=str2num(get(handles.e2,'string')); Z=str2num(get(handles.e3,'string')); if X~=0 | Y~=0 | Z~=0 XX=[X,Y,Z]; qcszh(dx,dy,dz,ex,ey,ez,k,XX); X=num2str(XYZN(1)); Y=num2str(XYZN(2)); Z=num2str(XYZN(3)); set(handles.e4,'string',X); set(handles.e5,'string',Y); set(handles.e6,'string',Z); end end %不同基准的平面直角坐标间转换(四参数转换) if get(handles.r3,'value')==1 & get(handles.r6,'value')==1 if get(handles.checkbox2,'value')==0 msgbox('请选中“四参数转换”多选框') return end X=str2num(get(handles.e1,'string')); Y=str2num(get(handles.e2,'string')); if X~=0 | Y~=0 XX=[X,Y]; scszh(x0,y0,de,K,XX); X=num2str(XY(1)); Y=num2str(XY(2)); set(handles.e4,'string',X); set(handles.e5,'string',Y); end end function m1_1_Callback(hObject, eventdata, handles) set(handles.e7,'visible','off') set(handles.e8,'visible','off') set(handles.e1,'string','0.000') set(handles.e2,'string','0.000') set(handles.e3,'string','0.000') set(handles.e4,'string','0.000') set(handles.e5,'string','0.000') set(handles.e6,'string','0.000') set(handles.t1,'visible','on'); set(handles.t2,'visible','on'); set(handles.t3,'visible','on'); set(handles.t4,'visible','on'); set(handles.t5,'visible','on'); set(handles.t6,'visible','on'); set(handles.e1,'visible','on'); set(handles.e2,'visible','on'); set(handles.e3,'visible','on'); set(handles.e4,'visible','on'); set(handles.e5,'visible','on'); set(handles.e6,'visible','on'); set(handles.pushbutton1,'enable','on') set(handles.pushbutton2,'visible','off') set(handles.pushbutton3,'visible','off') set(handles.pushbutton1,'visible','on') function m1_2_Callback(hObject, eventdata, handles) set(handles.pushbutton1,'visible','off') set(handles.pushbutton3,'visible','off') set(handles.pushbutton2,'visible','on') set(handles.pushbutton2,'enable','on') set(handles.e7,'string','') set(handles.e8,'string','') set(handles.e7,'visible','on'); set(handles.e8,'visible','on'); [fn,pn,FILTERINDEX]=uigetfile({'*.txt';'*.dat';'*.*'},'选择数据文件'); if(FILTERINDEX==0) return; end fid=fopen(strcat(pn,fn),'rt'); if(fid==-1) errordlg('Open file error!','Open error'); return; end M=fscanf(fid,'%f',1000); a=size(M,1); X=reshape(M,4,a/4); Y=num2str(X'); set(handles.e7,'string',Y);%输出文件数据到文本框中 set(handles.pushbutton1,'enable','on') function m2_1_Callback(hObject, eventdata, handles) set (mainf,'visible','off'); set (tysz,'visible','on'); function m2_2_Callback(hObject, eventdata, handles) set (mainf,'visible','off'); set (qcssz,'visible','on'); function m2_3_Callback(hObject, eventdata, handles) set (mainf,'visible','off'); set (scssz,'visible','on'); function m2_4_Callback(hObject, eventdata, handles) set (mainf,'visible','off'); set (jsqcs,'visible','on'); function m2_5_Callback(hObject, eventdata, handles) set (mainf,'visible','off'); set (jsscs,'visible','on'); function m4_1_Callback(hObject, eventdata, handles) msgbox({['作者:孔宁'],... ['单位:土木工程系'], ... ['学号:040712307'], ... ['Email:kongning3813@163.com'], ... ['水平有限,程序简陋'], ... ['不足之处,敬请原谅'] },'作者信息','help'); function r1_Callback(hObject, eventdata, handles) set(handles.t1,'string','X ='); set(handles.t2,'string','Y ='); set(handles.t3,'string','Z ='); function r2_Callback(hObject, eventdata, handles) set(handles.t1,'string','B ='); set(handles.t2,'string','L ='); set(handles.t3,'string','H ='); function r3_Callback(hObject, eventdata, handles) set(handles.t1,'string','x ='); set(handles.t2,'string','y ='); set(handles.t3,'string','h ='); function r4_Callback(hObject, eventdata, handles) set(handles.t4,'string','X ='); set(handles.t5,'string','Y ='); set(handles.t6,'string','Z ='); function r5_Callback(hObject, eventdata, handles) set(handles.t4,'string','B ='); set(handles.t5,'string','L ='); set(handles.t6,'string','H ='); function r6_Callback(hObject, eventdata, handles) set(handles.t4,'string','x ='); set(handles.t5,'string','y ='); set(handles.t6,'string','h ='); function pushbutton2_Callback(hObject, eventdata, handles) global cs BLH XYZ ML Y0 v xyh dx dy dz ex ey ez k XYZN x0 y0 de K XY tqcs; tqval=get(handles.tqjz1,'value'); switch tqval case 1 a=cs(1,1);Bl=cs(1,2); case 2 a=cs(2,1);Bl=cs(2,2); case 3 a=cs(3,1);Bl=cs(3,2); end format long %文件转换空间直角转大地 if get(handles.r1,'value')==1 & get(handles.r5,'value')==1 X=str2num(get(handles.e7,'string')); if X~=0 YY=X(:,1); XX=X(:,[2 3 4]); kj2dd(a,Bl,XX); BLH=[YY,BLH]; BLH=num2str(BLH); set(handles.e8,'string',BLH); end end %文件转换大地转空间直角 if get(handles.r2,'value')==1 & get(handles.r4,'value')==1 X=str2num(get(handles.e7,'string')); if X~=0 Y=X(:,1); X=X(:,[2 3 4]); dd2kj(a,Bl,X); XYZ=[Y,XYZ]; XYZ=num2str(XYZ); set(handles.e8,'string',XYZ); end end %文件转换大地坐标转高斯投影坐标 if get(handles.r2,'value')==1 & get(handles.r6,'value')==1 if ML==0 msgbox('请先设置好投影参数','Warning','warn'); return; end X=str2num(get(handles.e7,'string')); if X~=0 Y=X(:,1); X=X(:,[2 3 4]); dd2ty(a,Bl,v,Y0,ML,X); xyh=[Y,xyh]; xyh=num2str(xyh); set(handles.e8,'string',xyh); end ML=0 end %文件转换高斯投影坐标转大地坐标 if get(handles.r3,'value')==1 & get(handles.r5,'value')==1 if ML==0 msgbox('请先设置好投影参数','Warning','warn'); return; end X=str2num(get(handles.e7,'string')); if X~=0 Y=X(:,1); X=X(:,[2 3 4]); ty2dd(a,Bl,v,Y0,ML,X); BLH=[Y,BLH] BLH=num2str(BLH); set(handles.e8,'string',BLH); end ML=0 end %文件转换不同基准的空间直角坐标转换(七参数转换) if get(handles.r1,'value')==1 & get(handles.r4,'value')==1 if get(handles.checkbox1,'value')==0 msgbox('请选中“七参数转换”多选框') return end X=str2num(get(handles.e7,'string')); if X~=0 Y=X(:,1); X=X(:,[2 3 4]); qcszh(dx,dy,dz,ex,ey,ez,k,X) XYZN=[Y,XYZN]; XYZN=num2str(XYZN); set(handles.e8,'string',XYZN); end end %文件转换不同基准的平面直角坐标转换(四参数转换) if get(handles.r3,'value')==1 & get(handles.r6,'value')==1 if get(handles.checkbox1,'value')==0 msgbox('请选中“四参数转换”多选框') return end X=str2num(get(handles.e7,'string')); if X~=0 Y=X(:,1); X=X(:,[2 3]); scszh(x0,y0,de,K,X); XY=[Y,XY]; XY=num2str(XY); set(handles.e8,'string',XY); end end set(handles.pushbutton2, 'visible','off'); set(handles.pushbutton3, 'visible','on'); function pushbutton3_Callback(hObject, eventdata, handles) [fn,pn,FILTERINDEX]=uiputfile({'*.txt';'*.dat';'*.*'},'保存数据文件'); if(FILTERINDEX==0) return; end fid=fopen(strcat(pn,fn),'wt'); if(fid==-1) errordlg('Open file error!','Open error'); return; end X=str2num(get(handles.e8,'string')); fprintf(fid,'%5d%15.3f%15.3f%15.3f\n',X'); fclose(fid); set(handles.pushbutton3, 'visible','off'); function m3_1_Callback(hObject, eventdata, handles) % hObject handle to m3_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set (mainf,'visible','off'); set (hdjs,'visible','on'); % -------------------------------------------------------------------- % -------------------------------------------------------------------- 椭球设置窗口tysz.m % -------------------------------------------------------------------- function varargout = tysz(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @tysz_OpeningFcn, ... 'gui_OutputFcn', @tysz_OutputFcn, ... 'gui_LayoutFcn', [], ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function tysz_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; movegui(gcf,'center'); guidata(hObject, handles); function varargout = tysz_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pb1_Callback(hObject, eventdata, handles) global ML Y0 ML=str2num(get(handles.e1,'string')); Y0=str2num(get(handles.e4,'string')); set(tysz,'visible','off'); set(mainf,'visible','on'); function tysz_CloseRequestFcn(hObject, eventdata, handles) delete(hObject); set(mainf,'visible','on'); % -------------------------------------------------------------------- % -------------------------------------------------------------------- 七参数设置窗口qcssz.m % -------------------------------------------------------------------- function varargout = qcssz(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @qcssz_OpeningFcn, ... 'gui_OutputFcn', @qcssz_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function qcssz_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; movegui(gcf,'center'); guidata(hObject, handles); function varargout = qcssz_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) global dx dy dz ex ey ez k dx=str2num(get(handles.e1,'string')); dy=str2num(get(handles.e2,'string')); dz=str2num(get(handles.e3,'string')); ex=str2num(get(handles.e4,'string')); ex=d2r(ex); ey=str2num(get(handles.e5,'string')); ey=d2r(ey); ez=str2num(get(handles.e6,'string')); ez=d2r(ez); k=str2num(get(handles.e7,'string')); set(qcssz,'visible','off'); set(mainf,'visible','on'); function qcssz_CloseRequestFcn(hObject, eventdata, handles) delete(hObject); set(mainf,'visible','on'); % -------------------------------------------------------------------- % -------------------------------------------------------------------- 四参数设置窗口scssz.m % -------------------------------------------------------------------- function varargout = scssz(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @scssz_OpeningFcn, ... 'gui_OutputFcn', @scssz_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function scssz_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; movegui(gcf,'center'); guidata(hObject, handles); function varargout = scssz_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) global x0 y0 de K x0=str2num(get(handles.e1,'string')); y0=str2num(get(handles.e2,'string')); de=str2num(get(handles.e3,'string')); de=d2r(de); K=str2num(get(handles.e4,'string')); set(scssz,'visible','off'); set(mainf,'visible','on'); function scssz_CloseRequestFcn(hObject, eventdata, handles) delete(hObject); set(mainf,'visible','on'); % -------------------------------------------------------------------- % -------------------------------------------------------------------- 计算七参数窗口jsqcs.m % -------------------------------------------------------------------- function varargout = jsqcs(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @jsqcs_OpeningFcn, ... 'gui_OutputFcn', @jsqcs_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function jsqcs_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; movegui(gcf,'center'); guidata(hObject, handles); function varargout = jsqcs_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) global dX [fn,pn,FILTERINDEX]=uigetfile({'*.txt';'*.dat';'*.*'},'选择数据文件'); if(FILTERINDEX==0) return; end fid=fopen(strcat(pn,fn),'rt'); if(fid==-1) errordlg('Open file error!','Open error'); return; end M=fscanf(fid,'%f',1000); a=size(M,1); X=reshape(M,7,a/7); Y=X'; Y=Y(:,[2 3 4 5 6 7]); burse(Y); dx=dX(1); dy=dX(2); dz=dX(3); ex=r2d(dX(4)); ey=r2d(dX(5)); ez=r2d(dX(6)); k=dX(7); set(handles.e1,'string',dx); set(handles.e2,'string',dy); set(handles.e3,'string',dz); set(handles.e4,'string',ex); set(handles.e5,'string',ey); set(handles.e6,'string',ez); set(handles.e7,'string',k); function pushbutton2_Callback(hObject, eventdata, handles) set(handles.e1,'string','0.000'); set(handles.e2,'string','0.000'); set(handles.e3,'string','0.000'); set(handles.e4,'string','0.000'); set(handles.e5,'string','0.000'); set(handles.e6,'string','0.000'); set(handles.e7,'string','0.000'); function figure1_CloseRequestFcn(hObject, eventdata, handles) delete(hObject); set(mainf,'visible','on'); % -------------------------------------------------------------------- % -------------------------------------------------------------------- 计算四参数窗口jsscs.m % -------------------------------------------------------------------- function varargout = jsscs(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @jsscs_OpeningFcn, ... 'gui_OutputFcn', @jsscs_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function jsscs_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; movegui(gcf,'center'); guidata(hObject, handles); function varargout = jsscs_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) global dY [fn,pn,FILTERINDEX]=uigetfile({'*.txt';'*.dat';'*.*'},'选择数据文件'); if(FILTERINDEX==0) return; end fid=fopen(strcat(pn,fn),'rt'); if(fid==-1) errordlg('Open file error!','Open error'); return; end M=fscanf(fid,'%f',1000); a=size(M,1); X=reshape(M,5,a/5); Y=num2str(X'); Y=Y(:,[2 3 4 5]); jd4cs(Y); x0=dY(1); y0=dY(2); de=r2d(dY(3)); k=dY(4); set(handles.e1,'string',x0); set(handles.e2,'string',y0); set(handles.e3,'string',de); set(handles.e4,'string',K); function pushbutton2_Callback(hObject, eventdata, handles) set(handles.e1,'string','0.000'); set(handles.e2,'string','0.000'); set(handles.e3,'string','0.000'); set(handles.e4,'string','0.000'); function figure1_CloseRequestFcn(hObject, eventdata, handles) delete(hObject); set(mainf,'visible','on'); % -------------------------------------------------------------------- % -------------------------------------------------------------------- 坐标换带计算窗口hdjs.m % -------------------------------------------------------------------- function varargout = hdjs(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @hdjs_OpeningFcn, ... 'gui_OutputFcn', @hdjs_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function hdjs_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; movegui(gcf,'center'); guidata(hObject, handles); function varargout = hdjs_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) global a Bl v BLH xyh tqcs; if v == 1 a=cs(1,1);Bl=cs(1,2); end if v == 2 a=cs(2,1);Bl=cs(2,2); else a=cs(3,1);Bl=cs(3,2); end ML=str2num(get(handles.e7,'string')); Y0=str2num(get(handles.e8,'string')); x=str2num(get(handles.e1,'string')); y=str2num(get(handles.e2,'string')); h=str2num(get(handles.e3,'string')); if x~=0 | y~=0 | h~=0 xy=[x y h]; ty2dd(a,Bl,v,Y0,ML,xy); ML=str2num(get(handles.e9,'string')) Y0=str2num(get(handles.e10,'string')) dd2ty(a,Bl,v,Y0,ML,BLH) x=num2str(xyh(1)); y=num2str(xyh(2)); h=num2str(xyh(3)); set(handles.e4,'string',x); set(handles.e5,'string',y); set(handles.e6,'string',h); ML=0; end function pushbutton2_Callback(hObject, eventdata, handles) set(handles.e1,'string','0.000'); set(handles.e2,'string','0.000'); set(handles.e3,'string','0.000'); set(handles.e4,'string','0.000'); set(handles.e5,'string','0.000'); set(handles.e6,'string','0.000'); set(handles.pushbutton1,'visible','on'); set(handles.pushbutton2,'visible','off'); function figure1_CloseRequestFcn(hObject, eventdata, handles) delete(hObject); set(mainf,'visible','on'); % -------------------------------------------------------------------- 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师***老师、和研究生助教***老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在农大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 年 月 日   毕业设计(论文)使用授权声明 本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 年 月 日 基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。 毕业论文的基本教学要求是: 1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。 毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。 毕业论文在进行编写的过程中,需要经过开题、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。 撰写意义:1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。 2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。 3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。 论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。 按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。 按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。 另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类: 1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。 写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的 总结 性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际 问题 的能力。从文体而言,它也是对某一专业领域的现实问题或 理论 问题进行 科学 研究 探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。 首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。 教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。 第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。 第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 选择坐标转换类型 选择数据输入方式 输入数据或打开文件 曲元类型 点击转换按钮 输 出(保存) 选择坐标转换类型 选中七参数多选框 输入七参数 曲元类型 点击转换按钮 输出 _1274508603.unknown _1274525930.unknown _1274554553.unknown _1274564317.unknown _1274610470.unknown _1274610516.unknown _1274610835.unknown _1274610866.unknown _1274610570.unknown _1274610486.unknown _1274609305.unknown _1274609671.unknown _1274609268.unknown _1274565721.unknown _1274558004.unknown _1274563272.unknown _1274563309.unknown _1274563319.unknown _1274563324.unknown _1274563521.unknown _1274563314.unknown _1274563304.unknown _1274558589.unknown _1274562021.unknown _1274562800.unknown _1274558847.unknown _1274561888.unknown _1274558862.unknown _1274558623.unknown _1274558496.unknown _1274558523.unknown _1274558078.unknown _1274557782.unknown _1274557853.unknown _1274557917.unknown _1274557822.unknown _1274557351.unknown _1274557493.unknown _1274557301.unknown _1274553393.unknown _1274553671.unknown _1274553893.unknown _1274554065.unknown _1274554143.unknown _1274554516.unknown _1274554280.unknown _1274554110.unknown _1274553927.unknown _1274553709.unknown _1274553847.unknown _1274553685.unknown _1274553561.unknown _1274553646.unknown _1274553660.unknown _1274553606.unknown _1274553476.unknown _1274553527.unknown _1274553450.unknown _1274546363.unknown _1274552983.unknown _1274553259.unknown _1274553324.unknown _1274553241.unknown _1274552295.unknown _1274552770.unknown _1274552895.unknown _1274552283.unknown _1274525970.unknown _1274527214.unknown _1274533433.unknown _1274533451.unknown _1274533600.unknown _1274533473.unknown _1274533440.unknown _1274527252.unknown _1274527257.unknown _1274527246.unknown _1274527218.unknown _1274527134.unknown _1274527159.unknown _1274527182.unknown _1274527204.unknown _1274527165.unknown _1274527151.unknown _1274525975.unknown _1274525960.unknown _1274525964.unknown _1274525935.unknown _1274525955.unknown _1274525518.unknown _1274525778.unknown _1274525904.unknown _1274525914.unknown _1274525924.unknown _1274525909.unknown _1274525848.unknown _1274525875.unknown _1274525803.unknown _1274525558.unknown _1274525569.unknown _1274525580.unknown _1274525642.unknown _1274525648.unknown _1274525586.unknown _1274525574.unknown _1274525564.unknown _1274525528.unknown _1274525541.unknown _1274525553.unknown _1274525523.unknown _1274509668.unknown _1274509734.unknown _1274509771.unknown _1274509802.unknown _1274525508.unknown _1274509807.unknown _1274509777.unknown _1274509752.unknown _1274509758.unknown _1274509745.unknown _1274509698.unknown _1274509719.unknown _1274509726.unknown _1274509712.unknown _1274509705.unknown _1274509681.unknown _1274509693.unknown _1274509674.unknown _1274509633.unknown _1274509640.unknown _1274509656.unknown _1274509662.unknown _1274509648.unknown _1274509600.unknown _1274509615.unknown _1274509609.unknown _1274508637.unknown _1274508651.unknown _1274509595.unknown _1274508646.unknown _1274508622.unknown _1274508629.unknown _1178865750.unknown _1274425699.unknown _1274427130.unknown _1274508276.unknown _1274508565.unknown _1274508578.unknown _1274508589.unknown _1274508595.unknown _1274508583.unknown _1274508572.unknown _1274508304.unknown _1274508310.unknown _1274508323.unknown _1274508331.unknown _1274508316.unknown _1274508305.unknown _1274508292.unknown _1274504916.unknown _1274504959.unknown _1274505200.unknown _1274507699.unknown _1274504988.unknown _1274504930.unknown _1274504852.unknown _1274504900.unknown _1274427213.unknown _1274427139.unknown _1274426090.unknown _1274426503.unknown _1274426889.unknown _1274426909.unknown _1274426780.unknown _1274426831.unknown _1274426859.unknown _1274426796.unknown _1274426520.unknown _1274426109.unknown _1274426482.unknown _1274425809.unknown _1274425820.unknown _1274425838.unknown _1274425713.unknown _1274425758.unknown _1274424361.unknown _1274425623.unknown _1274425647.unknown _1274424421.unknown _1274424402.unknown _1207988967.unknown _1207988984.unknown _1182229785.unknown _1207923209.unknown _1207987390.unknown _1178866841.unknown _1178886083.unknown _1178958615.unknown _1178866883.unknown _1178865791.unknown _1177593557.unknown _1177660080.unknown _1177854498.unknown _1178563415.unknown _1178865676.unknown _1178542627.unknown _1178563296.unknown _1177845943.unknown _1177845958.unknown _1177742257.unknown _1177593740.unknown _1177653613.unknown _1177653698.unknown _1177593749.unknown _1177593656.unknown _1177593678.unknown _1177593726.unknown _1177593641.unknown _1177593299.unknown _1177593413.unknown _1177593556.unknown _1177593410.unknown _1177593264.unknown _1177593283.unknown _1177593241.unknown _1100934323.unknown
/
本文档为【基于MATLAB的坐标转换程序设计毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索