【大地测量学基础】第二部分 基本计算练习.doc

上传人:豆**** 文档编号:15076843 上传时间:2022-05-10 格式:DOC 页数:79 大小:1.59MB
返回 下载 相关 举报
【大地测量学基础】第二部分 基本计算练习.doc_第1页
第1页 / 共79页
【大地测量学基础】第二部分 基本计算练习.doc_第2页
第2页 / 共79页
点击查看更多>>
资源描述

《【大地测量学基础】第二部分 基本计算练习.doc》由会员分享,可在线阅读,更多相关《【大地测量学基础】第二部分 基本计算练习.doc(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.【大地测量学基础】第二部分 基本计算练习【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.第二部分 基本计算与编程.4一 编程语言简介及特点.41.1 Visual Basic 概述.41.2 VB 的基本概念.41.3 数据类型. 51.4 标准控件简介.51.5 过程、函数和方法.71.6 应用程序的设计.101.7 简单的编程实例.12二 测量中几种常用的计算.132.1 角度化为弧度.132.2 弧度化为角度计算.132.3 坐标方位的计算.14三空间大地坐标与空间直角坐标之间的换算.143.1 由空间大地坐

2、标计算空间直角坐标.143.2 空间直角坐标计算空间大地坐标.143.3 计算程序与范例.15四 大地主题问题正反计算.164.1 高斯平均引数大地问题解算.164.2 白塞尔大地主题解算.204.3 嵌套系数法解算任意距离的大地主题.264.4 大地主题解算程序功能介绍.31五 子午线弧长正反解算.315.1 子午线弧长正算.315.2 子午线弧长反算.32六 高斯投影正反算和邻带换算.326.1 高斯投影正算.326.2 高斯投影反算.326.3 高斯投影邻带换算.336.4 高斯投影计算程序及其功能.33七平面直角坐标系换算.367.1 直接参数法.367.2 相似变换(赫尔墨特法).3

3、67.3 正形变换法.377.4 多项式逼近法.377.5 算例与程序功能介绍.37八测量仪器与计算机间的数据通讯.498.1 MSComm 通讯控件及其属性简介.498.2 使用 MSComm 控件设计通讯程序的步骤.508.3 数据传输的设置.508.4 计算机接收数据的通讯程序.51九平面控制网数据处理. 5391 平面控制网的概算.5392 误差方程式与法方程的组成.62【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.93 法方程的求逆与平差计算.6693 精度评定.7294 图形的绘制.75十高程控制网数据处理.79101 高程控制网的概算.79102 误差方程的组成

4、.79103 法方程式组成与计算.79104 精度评定.79【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.第二部分第二部分 基本计算与编程基本计算与编程大地测量学基础教程包含着许多测量基本计算问题,如常见坐标系的计算,坐标系之间的转换计算,椭球大地计算、高斯投影计算、平面网与高程网平差数据处理等。对于上述相关计算必须要求测绘专业学生加以掌握,其目的是通过计算加深学生对相关基本理论与方法的理解与掌握,同时有益于学生能力的培养。采用计算机编程进行数据处理计算,其计算语言较多,比如Basic语言、C语言、Tortran、Pascal、Delphi等,不同语言各自具有不同的特点,为了

5、方便学生对语言的初步学习,这里对Visual Basic语言作一简单介绍,供学生参考。一一 编程语言简介及特点编程语言简介及特点1.1 Visual Basic 概述概述Visual Basic(以下简称VB)的前身是QBASIC,语言基础是BASIC。自从微软推出VB后,VB便成为程序开发人员的首选工具。它是一套完全独立的 Windows 开发系统,是可视化、面向对象、采用事件驱动方式的结构化高级程序设计语言,利用其事件驱动的编程机制、新颖易用的可视化工具, 并使用 Windows 内部应用程序接口 (API) 函数, 采用动态连接库 (DLL) 动态数据交换 (DDE) 、对象的链接与嵌入

6、 (OLE) 以及开放式数据库访问 (ODBC)等技术, 可以高效、 快速地建立 Windows环境下功能强大、 图形界面丰富的应用软件系统。 据统计, 仅在数据库系统开发领域, VB就占了90的份额。VB是基于对象的可视化程序开发工具,其优点在于快捷简易地建立Windows应用程序。按使用人员来分,VB有以下三个版本:1标准版标准版针对一般程序人员,适合普通应用软件的开发。2专业版专业版针对专业程序开发人员,在标准版的基础上提供了对数据库和Internet的支持。3企业版企业版适合于企业设计应用软件的程序开发。对于一般的设计者而言,只要充分发挥自身的想象力,任何人均可在在较短的时间内,利用V

7、B语言开发各种自己的实用程序。可视化编程的一个突出特点是具备集成开发环境,在相应的开发平台上集成了编辑器,编译连接工具,控制器箱辅助工具。在VB集成开发环境下包括一些主要性能:工具箱,工具栏,工具管理器窗口,属性窗口,窗体设计器,代码编辑窗口等,同时集成环境的设置也非常灵活,开发人员可以按照自己的编程习惯来加以配置。1.2 VB 的基本概念的基本概念对象,是指可以当作一个单元的代码和数据的组合,它可以是程序中的窗体或控件,也可以是整个程序。对象有自身的状态与方法。属性,是指对象具有的性质,表示对象的状态。对象的属性设置,可以在程序设计时在属性窗口中实现,也可以使用代码设置属性的值,其语法为:对

8、象名_属性新值事件,是指发生在对象上的事情。Windows应用程序属于“事件驱动事件驱动”模式。对象对事件的反应又称为“事件过程事件过程” 。事件过程的语法:Sub 对象名_事件()处理事件的代码【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.End Sub事件驱动,只有当事件发生时,程序才会运行。在没有事件的时候,整个程序处于停滞状态。VB程序中流动的不是数据而是事件,如果说属性决定了对象的外观,方法决定了对象的行为,那么事件就决定了对象之间联系的手段。方法,对象本身包含的函数和过程。方法决定了对象可以进行的动作,方法的内容(代码)是不可见的,当我们需要使用某个对象的方法是,

9、只需要使用其格式:对象名.方法如清除窗体Form1上的内容:Form1.cls.以坐标(1920,1300)为圆心,以800为半径画园,其方法为:Form1.Circle(1920,1300),800过程,指事件发生时要执行的代码。面向对象编程, 以对象为核心,支持对象的封装机制,多态机制和继承机制(VB不能真正支持继承机制,故从严格意义上讲VB不是真正意义上的面向对象编程) 。1.3 数据类型数据类型VB中有丰富的数据类型,这里仅作简单介绍。1数字型:包括整型(Integer) 、长整型(Long) 、单精度(Single) 、双精度(Double) 、货币型(Currency)等。例如:D

10、imXAsInteger2. 字符型(String):字符型变量可以存储可变的字符串。3. 布尔型(Boolean):一个变量包含简单的Yes/No、Ture/Fals信息,则可以定义为布尔型变量。例如:Dim temp As Boolean.4. 日期型(Date):专门用来表示时间的数值类型,可以有多种表达方式。5对象型(Object):对象变量存储的是对象的地址信息,它本身并不是一个变量,但定义为Object类型的变量可以通过赋值语句指向程序能识别的任何对象。例如:DimMydb As ObjectSet Mydb=OpenDatabase(“C:VB6tempDB.mdb”)这样对My

11、db进行访问时,实际上就是对Access数据库tempDB.mdb进行访问。6: Variant类型: Variant变量类型可以存储所有的数据类型, VB会自动执行相应的转换。 但Variant变量类型会耗用较多的资源,所以不提倡采用。1.4 标准控件简介标准控件简介VB对控件有三种广义的分类:1、内部控件内部控件:内部控件就是在工具箱中默认出现的控件,如CommandButton、Frame控件等。内部控件总是出现在在工具箱中,不像ActiveX控件和可插入对象那样可以添加到工具箱中,或从工具箱中加以删除。2、ActiveX控件控件:ActiveX 控件是扩展名为 .ocx 的独立文件,其

12、中包括各种版本 Visual Basic提供的控件(如 DBGrid、DBCombo、DBList 控件等) ,另外还有许多第三方提供的 ActiveX 控件。3、可插入对象可插入对象:如一个 Excel、Word 工作表对象。因这些对象能添加到工具箱中,故可以把他们当作控件使用。其中一些对象还支持自动化(OLE 自动化) ,使用这些控件就可在 Visual Basic应用程序中编程控制另一应用程序的对象。这里仅对其中一些常用控件略加介绍CommandButton 按钮按钮(命令按钮) :按钮是用户与应用程序交互的最简便的方法。用户点击按钮,就会调用 Click 事件过程。将代码写入Click

13、 事件过程,执行想要执行的动作。Label 控件控件(标签) :用来在窗体中显示文字,一本对没有Caption属性的控件(如TextBox)【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.起标识作用。文本是只读的,用户不能修改。TextBox 控件控件(文本框) :文本框控件可用来显示与输入文本。如果TextBox控件的Locked属性设为True, 则用户不能直接修改文本框的文本内容。如果TextBox控件的MultiLine属性设为True, 则可显示多行文本。CheckBox 控件控件(复选框):复选框像一个开关,表明一个特定的状态是选定(on)还是清除(off) 。在应

14、用程序中使用 CheckBox 为用户提供了 Yes/No 或 True/False 的选择。CheckBox 是独立工作的,用户可以同时选择任意多个复选框。CheckBox 的 Value 属性有三个值(0是没有选中即默认值,1为选中,2 为灰色状态) 。OptionButton 控件控件(选项按钮) :选项按钮表示给用户一组或更多的选择。它不同于CheckBox控件,选择一个选项按钮就会清除该组中的其他按钮,一组中只有一个选项处于选项状态。OptionButton 的 Value 属性有两个选项 True/False。Frame 控件控件(框架) :Frame 控件用来创建选项按钮组。如果

15、将一组 OptionButton 选项按钮放在一个窗体上,那么所有选项按钮将构成一组。如果相创建其他选项按钮组,就必须将其中一组选项按钮放在 Frame 控件中。ListBox 控件控件(列表框)和ComboBox 控件(组合框) :列表框与组合框是在有限的空间为用户提供大量选项的有效方法。ComboBox 兼有 TextBox 和 ListBox 两者的功能,该控件允许用户通过键入文本或选择列表中的项目来进行选择。HScrollBar 和和 VScrollBar 控件控件 (垂直与水平滚动条) : 滚动条相当于一个模糊的输入装置,当用户不需要精确设置数据只要大概范围的时候,使用滚动条控件进行

16、输入是一种合适的选择。在早期VB版本中通常把滚动条作为输出设备,但目前建议采用滑板控件。CommonDialog 控件控件(通用对话框) :通用对话框控件提供了一组标准的操作对话框,可以进行如文件的打开与保存,设置打印选项,选择颜色和字体操作等。通过运行 Windows的帮助引擎控件还能显示帮助。DBGrid 控件控件(数据绑定网格) : DBGrid (Data Bound Grid) 控件提供了一般Grid 控件显示信息,但与 Grid 控件不同,一旦绑定了某个数据表,不仅可以将数据显示出来,而且还可以修改每个字段的内容。MSFLexGrid 控件控件:MSFLexGrid 控件显示和操作

17、表格数据。对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。当与Data控件绑定时,只显示只读数据。可将 MSFLexGrid控件与 TextBox 控件组合,使其控件具有单元编辑功能。DriveListBox 控件控件(驱动器列表框) :驱动器列表框是下拉式列表框。在默认式在用户系统上显示当前驱动器。当该控件获得焦点时,用户可以输入任何有效的驱动器标识符,或者从下拉列表中选定新驱动器。DirListBox 控件控件(目录列表框) :目录列表框可以显示当前驱动器的目录结构。如果把驱动器列表框的Dirve属性赋予目录列表框的Path 属性, 则可以显示驱动器列表中选定的驱动器的目

18、录:Dir1.Path=Dirve1.DirveFileListBox 控件控件(文件列表框) :文件列表框在运行时显示由Path属性指定的包含在目录中的文件。例如可用下列语句显示当前目录中的所有文件:File.Path=Dir1.PathImage 控件:控件:Image 控件用来显示图形。它可显示如位图、图标、图元文件、增强型图元文件、JPEG 或GIF格式的图形文件。Line 控件:控件:直线控件用来在窗体、框架或图片框中创建简单的线段。PictrueBox 控件控件:PictrueBox 控件用来显示图形。它可显示如位图、图标、图元文件、增强型图元文件、JPEG 或GIF格式的图形文件

19、。但PictrueBox 控件包含了Image 控件不具有【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.的功能,如作为其它控件的容器的功能和支持图形方法的功能。Shape 控件控件:可用形状控件在窗体、框架或图片框中创建如矩形、正方形、椭圆形、园形、园角矩形或园角正方形形状。Timer 控件控件:Timer 控件响应时间的流逝。它独立于用户,编程用来在一定的时间间隔执行某种操作。对于其它的后台处理该控件非常有用。除上述标准控件以外,这里仅介绍三种 ActiveX 控件。MSComm 控件控件:MSComm 控件为你的应用程序提供了串口通讯功能,允许通过串口发送和接收数据。每个

20、 MSComm 控件都与一个串口对应,如果在应用程序中需要访问多个串口,就必需有多个MSComm 控件。TabStrip 控件控件: 一个 TabStrip 控件就象一组文件夹上的标签,使用 TabStrip 控件用户可以在应用程序中在窗口或对话框中的同一区域定义多个数据页面。该控件包含一个或多个Tab 对象,可以通过 TabStrip 控件的属性对话框来增加或删除Tab对象。Toolbar 控件控件:一个Toolbar 控件包含了一个 Button 对象的集合, 用来创建与应用程序关联的工具条。对于其它控件的应用请参考有关VB专业书籍,这里就不一一加以介绍。1.5 过程、函数和方法过程、函数

21、和方法Visual Basic程序由若干子程序构成,这些子程序称为过程、函数和方法。他们都在代码窗口中设计。1、 过程(Procedure)完成某种特定功能的一组程序代码称为过程。在Visual Basic程序中用关键字 Sub 和 End Sub表示过程的开始和结束。VB中共有两种类型的过程。事件过程(Event Procedure)当用户在窗体上设计图形界面时,针对每个对象均有多个事件与其相关连,每个对象与每个事件都可以构成一个事件驱动程序,也就是说当用户或系统在某一对象上触发某种事件时,就会引发去执行相应的事件驱动程序,完成特定的功能。事件过程是依附于每个对象上的,由特定事件引发的程序,

22、是VB程序的主体。VB在运行时会自动通过事件过程名称来识别执行哪个事件驱动程序。Sub 对象名_事件名称()处理事件的代码End Sub通用过程(General Procedure)当多个事件过程都需要完成某种公共的功能,如完成一些公共的数据计算,或对某些变量进行共同的操作,那么用户可自己建立通用过程,编写公共代码模块,供其他程序调用。通用模块的声明如下:Sub 过程名称(参数1,参数2,)程序语句代码End Sub2、 函数(Funtion)Visual Basic中包含两大类函数;一类是VB本身提供的已被封装好的通用函数,它不需要用户去创建和声明及编程,只需要直接调用;另一类是用户自定义函

23、数。常用函数:包括数学函数、字符串函数、日期函数、类型转换函数。1数学函数函数表达式函数功能说明【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.Abs( 表达式)绝对值函数。Int(表达式)取整函数, 将表达式的值转换为小于或等于该表达式的最大整数。Fix(表达式)取整函数, 将表达式的值的小数部分截去,直接取整数。Atn(表达式)反正切函数。Sin(表达式)正弦函数。Cos(表达式)余弦函数。Tan(表达式)正切函数。Sqr(表达式)平方根函数。Exp(表达式)以e为底的指数函数。Sgn(表达式)符号函数,表达式值为正数、零、负数,函数值分别为1、0、1。Rnd(表达式)随机

24、数生成函数,返回0与1之间的单精度的随机数。字符串函数函数表达式函数功能说明函数表达式Len(字符串)字符串长度函数Str(表达式)字符串函数InstrLcase$(字符串)将字符串的字符转换成小写字母。Ucase$(字符串)将字符串的字符转换成大写字母。Left$(字符串,表达式)左截取字符函数Right$(字符串,表达式)右截取字符函数Mid$(字符串,起始位置,长度)从字符串的起始位置截取指定的长度的字符串。LTrim$(字符串)将字符串的左边空格去掉返回字符串。RTrim$(字符串)将字符串的右边空格去掉返回字符串。Trim$(字符串)将字符串的前后空格删除返回字符串。InStr( )

25、字符串匹配函数StrComp()字符串比较函数Space(表达式)返回由数值指定的一定数目的空格字符串。2日期函数函数表达式函数功能说明Year(日期表达式)日期表达式为任意整数或字符型表达式,返回值为年份。Month(日期表达式)日期表达式为任意整数或字符型表达式,返回值为月份。Weekday(日期表达式)日期表达式为任意整数或字符型表达式,返回值为星期。【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.Day(日期表达式)日期表达式为任意整数或字符型表达式,返回值为月份的天数。Hour(日期表达式)表达日期表达式对应天中的小时。Minute(日期表达式)表示指定时间的分钟数。

26、Second(日期表达式)表示指定时间的秒数。Now返回计算系统的日期和时间。Data$返回当前系统日期,以字符串格式:月日年或月/日/年表示。Time$返回当前系统日期,以字符串格式:时:分:秒。转换函数及其它函数表达式函数功能说明函数表达式Str$(数值表达式)字符串函数,将数值表达式转换成字符串。Val(字符串)将文本字符串变为数值型数据。Asc(字符)返回字符的ASCII码值。Chr$(整数)将0255之间的整数转换为对应的ASCII字符。EOF(文件号)读取文件进程函数,读到文件末尾,则其函数值为 True或1。Error(错误代码)错误响应函数,返回错误代码所对应的错误信息字符串。

27、Format(变量, 格式字符串)输出格式函数。RGB(R,G,B)颜色定义函数,R、G、B为数值表达式。Sell(字符串)可执行程序运行函数,字符串:为执行程序的路径。Tab(整数)文件输出定位函数。用户自定义函数(Funtion Procedure)其用途与建立方法类似于通用过程,只是通用过程是单方向调用,只有参数传给过程,而没有参数值的返回;而用户自定义函数是双向的,调用时参数传入函数,函数执行完毕后返回其函数值。故用户自定义函数像变量一样有自己的类型,它决定了函数返回值的类型。其描述为Funtion函数名称(参数1,参数2,)As 类型名称程序语句代码End FuntionFuntio

28、n函数名称(参数1,参数2,)As 类型名称程序语句代码1Exit Funtion程序语句代码2End Funtion3、 方法(Method)面向对象的程序设计语言为程序设计人员提供了一种特殊的过程和函数称为方法。在VB中一些通用的函数与过程编好并封装起来,作为方法供用户直接使用。方法是针对特定对象执行一项任务的过程或函数。如在早期的 Basic 语言中,往屏幕上显示信息和像打印机打印该信息,其语句是有区别的,即用 PRINT 语句表示像屏幕打印,而 LPRINT才是向打印机打印某信息,不同的对象完成【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.同一任务其命令语句是不同的。

29、而 VB 语言将打印功能封装成一特殊的 Print 方法,向不同的对象上打印信息直接指明对象,调用同一方法即可完成。方法调用的语法为:对象名称.方法1.6 应用程序的设计应用程序的设计1、设计应用程序的界面设计一个窗体窗体对象是VB应用程序设计的基本构造模块,是运行应用程序时与用户交互操作的实际窗口。窗体有自己的属性、事件和方法。设计窗体的第一步是设置它的属性,窗体的属性很多,它不仅控制着窗体的外观,还控制着窗体的位置、行为等其它方面。属性可以在设计程序时在“属性”窗体中设置, 也可以在程序运行时由代码来实现。 窗体的属性如: BorderStyle、 Caption 、 Height、Lef

30、tMaxButton、MinButton、Moveable、Name、ShowInTaskar、WindowState、Icon等。向窗体上添加控件根据自身的需要在窗体上加不同的控件,并使用代码控制来完成不同的任务。向窗体上添加控件要使用控件工具箱和窗体编辑器。实用工具箱向窗体添加控件有两种途径:其一在工具箱中的控件按钮上双击,则窗体的中央会出现一个相应的控件;其二在工具箱中的控件按钮上单击,则该按钮会凹下去,鼠标指针变为形状,然后在窗体的合适位置按下鼠标左键即可。要删除不合适的控件只要选中然后按下DEL键即可。设置启动窗体除了窗体的细节设计以外,还要考虑应用程序的开始与结束。每个应用程序都有

31、自己的入口及开始执行的地方。这里可以使用两种方法来加以实现。其一设置启动窗体,从“工程”菜单中选择“工程属性”命令,在显示对话框中选择“通用”选项卡,在“启动对象”列表中选取新启动的窗体,单击“确认”按钮即可。其二采用不使用启用窗体开始运行程序的方法,可在标准模块中创建一个名为 Main 的过程,如Sub Main( )过程代码End IfMain 过程必须在一个标准模块内, 不能在窗体模块内。 要将 Sub Main 过程设为启动对象, 可从 “工程”菜单中选择“工程属性”命令,在显示对话框中选择“通用”选项卡,在“启动对象”列表中选定“Sub Main” ,单击“确认”按钮即可。使用函数生

32、成的对话框在应用程序中,可能会需要显示一些暂时性的简短的错误或警告信息,可以引起用户的注意。用户可以设计一个窗体来完成这个任务,但最简便的方法是使用 MsgBox 函数来完成则更直接、更为方便。 MsgBox 函数可以用来在对话框中显示消息, 并等待用户单击按钮, 然后返回一个整形的值,让程序了解用户单击的是哪个按钮。MsgBox 函数的语法为:MsgBox(prompt ,buttons ,title ,helpfile,context)另外可采用 InputBox 对话框实现一些简单的数据或信息的输入,并返回包含文本框的内容的字符串,InputBox 对话框的语法为:InputBox(pr

33、ompt ,title ,default ,xpos ,ypos,helpfile,context)2、编写程序代码赋值语句VB的程序代码由语句、常数和声明部分组成。其中赋值语句使用频率最高,其语法为:对象属性或变量表达式【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.程序的书写规则注释,注释语句可用来说明编写的某段代码或声明某个变量的目的,以方便以后阅读这些源代码。要添加注释,使用“”符号作为注释文字的开头。断行,如果一个很长,打印和阅读恨不方便,可采用续行符“ ” (一空格后紧跟一下划线)将长语句分成多行。将多语句写在一行,VB通常是一行一条语句,如果在一行中写下多条语句,

34、可使用“: ”作为分隔符号。变量变量的命名:必须以字母开头,不能在变量名中出现 . 、空格或嵌入! ,#,$,%,&等符号,变量名的长度不得超过255个字符。变量的声明:变量的声明语句为Dim变量名 As 类型。变量的作用范围:如果同一窗体的所有过程分享同一变量,就应该把它定义为模块级变量模块级变量,其方法是在窗体模块的声明段中定义该变量。单击窗体模块代码窗口的对象列表框,从中选择“通用”选项即可。 在窗体模块的声明段声明变量, 在除了使用 Dim 关键字外, 还可以使用Public 和Private关键字。 用Public 关键字声明模块级变量, 变量在整个应用程序中由效, 称为公共变量或全

35、局变量公共变量或全局变量,其它模块中的过程也可以使用这个变量。用Private 关键字声明模块级变量,本窗体中的过程可以访问它,但其它模块中的过程不能使用这个变量。与模块级变量相对,在过程中声明的变量被称为局部变量局部变量,局部变量只能在过程执行期间有效,其它代码不能使用。如果过程结束以后还需保持过程中变量的值,可使用 Static 关键字声明变量为静态变量静态变量。不同作用范围的3种变量的声明方式作用范围局部变量模块级变量公共变量声明方式Dim, StaticDim, PrivatePublic变量声明的位置过程中模块的声明段中模块的声明段中是否被本模块中其它过程访问能否被其它模块访问常数在

36、应用程序之中,往往要用到一些不变的量即常量,如pi=3.11415926.有在VB中,声明常数的语法为Public|Private Const 常数名 As 类型=表达式运算符号算术运算:加 +、减 、乘 *、浮点数除法 /、整数除法 、幂运算 、求余数 MOD。比较运算:大于 、小于 = 、小于或等于 =、等于 = 、不等于 。连接运算:+ 、& 。逻辑运算:逻辑非 Not 、逻辑与 And、逻辑或 Or、逻辑异或 Xor、逻辑等 Eqv、蕰含 Imp。流程控制语句Visual Basic支持的条件判定结构有三种:IfThen 结构:If条件Then语句或If条件Then若干语句End if

37、IfThenElse 结构:If条件1Then若干语句1Else If条件2Then【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.若干语句2Else若干语句3End ifSelect Case 结构:Select Case条件Case表达式1若干语句1Case表达式2若干语句2Case else若干语句nEnd SelectVisual Basic支持的条件循环控制:D0 While循环条件若干语句Exit DoLoopD0若干语句Loop While循环条件For计算器=初值To终止值Step增量若干语句Next计算器1.7 简单的编程实例简单的编程实例运行VB6, 新建一

38、个标准的EXE工程, 从工具箱中双击 CommandButton 控件, 在主窗体 Form1上设置两个命令按钮 Command1 与 Command2,双击Text文本控件,在主窗体 Form1上设置三个文本控件,其 Name 属性依次为 Text1、Text2、Text3,最后拖动一个标签 Label 控件放在主窗体的上中间位置。双击窗体 Form1,打开代码窗口,输入以下代码Private Sub Command1_click() 单击按钮事件Text3.text=Text1.text+Text2.textEnd subPrivate Sub Command2_click() 单击按钮事

39、件End 程序运行结束退出End subPrivate Sub Form_load( ) 窗体启动调入内存Label1.Caption=“大地测量学基础实验”Command1.Caption=“计算”Command2.Caption=“退出”Text1.text=“” :Text2.text=“ “:Text3.text=“”给文本框赋初值Text1.SetFocusText1文本框获得焦点【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.End sub然后运行,在Text1文本框与Text2文本框中输入数据,单击计算按钮,在Text3文本框中显示计算结果。一个较好的应用程序必须

40、要有好的用户界面,在大多应用程序中大多包含着许多通用的东西,如工具栏、状态栏、工具提示、上下文菜单、帮助以及选项卡对话框等。VB 具有把所有这些添加到应用程序中的能力,因此应该很好的学习并加以掌握运用。二二 测量中几种常用的计算测量中几种常用的计算角度化为弧度、 弧度化为角度以及坐标方位角的计算在测量数据处理中是经常遇到的计算问题。也是最基本的计算问题。2.1 角度化为弧度角度化为弧度将度、分、秒形式的角度angle化为弧度,采用函数功能来实现,其函数值为返回的弧度值。其数据格式为: 参数angle的整数为表示度, 小数点后两位表示分, 小数点后第三位开始表示秒, 如180度34分54.23秒

41、, 即 angle=180.345423。FunctionFunction Radian(ByValRadian(ByVal angleangle AsAs Double)Double) AsAs DoubleDoubleDim mm As Double, a As Doublea = Abs(xx)a = a + 0.0000001dd% = Int(a)ii% = Int(a - dd%) * 100)mm = (a - dd%) * 100 - ii%mm = dd% + ii% / 60 + mm / 36Radian = pi * mm / 180Radian = Sgn(angle

42、) * RadianEndEnd FunctionFunction2.2 弧度化为角度计算弧度化为角度计算将弧度值radian 化为度、分、秒的角度形式,采用函数功能实现,计算返回角度值。其数据格式为: 函数值qdms的整数为表示度,小数点后两位表示分, 小数点后第三位开始表示秒, 如160度14分23.03秒, 即qdms=160.142303。FunctionFunction qdms(ByValqdms(ByVal radianradianAsAs Double)Double) AsAs DoubleDoubleDim a1, xx , second As Doublea1 = Abs(

43、radian)a1 = a1 * 180 / pidegree% = Int(a1)xx = (a1 - degree%) * 60minute% = Int(xx)second = (xx - minute%) * 60qdms = degree% + minute% / 100 + second / 10000qdms = Sgn(radian) * qdmsEndEnd FunctionFunction【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.2.3 坐标方位的计算坐标方位的计算已知点号为i和j两点的平面坐标ix、iy、jx、jy,求i和j两点的坐标方位角, 先计算

44、ijijyypyxxpx , ,在按如下计算公式如下:FunctionFunction qiua(ByValqiua(ByVal pxpx AsAs Double,Double, ByValByVal pypy AsAs Double)Double) AsAs DoubleDoubleDim PZ As DoubleIf px = 0 ThenPZ = pi / 2#If py 0 Then PZ = pi * 1.5ElsePZ = Atn(py / px)If px 0 Then PZ = PZ + piIf py 0 Then PZ = PZ + pi * 2End Ifqiua = P

45、ZEndEnd FunctionFunction三三空间大地坐标与空间直角坐标之间的换算空间大地坐标与空间直角坐标之间的换算3.1 由空间大地坐标计算空间直角坐标由空间大地坐标计算空间直角坐标已知椭球a、2e,大地坐标直角坐标X、Y、Z,求大地坐标B、L、H,计算公式如下式中BeaN22sin1/。3.2 空间直角坐标计算空间大地坐标空间直角坐标计算空间大地坐标已知椭球a、2e,大地坐标直角坐标X、Y、Z,求大地坐标B、L、H。1、 直接解法计算公式(参见熊介编著: 椭球大地测量学 )计算辅助量计算大地经度计算大地纬度计算大地高2、 迭代解法计算公式汇编计算辅助量计算大地纬度计算大地纬度令22

46、0 tgYXZB,222 YXcep,21 ew迭代循环计算iiiBwBpBB201tgtgtg tg直到满足101101 iiBB,以保证fB 的计算精度至0.0001 【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.计算大地高3.3 计算程序与范例计算程序与范例空间大地坐标与空间直角坐标之间的计算程序界面如下图所示。在窗体XYZ-BLH上设置3个Frame控件,在 Frame1 内放置3个选择按钮 option1(0)、option1(1)、option(2),控制椭球参数;在Frame2 内放置2个选择按钮 option2(0) 与 option2(1),控制计算方法;在

47、Frame3 内放置1个MSFlexGrid 控件,4个 CommandButton 命令按钮,其 Caption 属性分别为文件、添加、删除、保存,其功能主要用来编辑数据与保存数据;在窗体 XYZ-BLH上 设置3个 CommandButton 命令按钮,其 Caption 属性分别为计算、显示、退出,其功能为计算、用 Word 显示计算结果、退出。其计算界面直观、方便。计算范例1:已知数据045L ,09999.595944B ,9987.999999H 。计算结果468.3694472X ,468.3694472Y ,424.5194534 Z 。计算范例2:已知数据532.117814

48、3X ,388.5181238Y ,537.3526461 Z 。计算结果333.221177L 0 ,0666.554433B ,66.5555H 。图31 空间大地坐标与空间直角坐标换算程序界面上述计算采用直接算法,计算子程序如下:SubSub BLH_XYZ(b,BLH_XYZ(b, l,l, H,H, x,x, y,y, Z,Z, ByValByVal K K AsAs Integer)Integer)EPS = e2 / (1# - e2)BB = a / Sqr(1# + EPS)Select Case KCase 1p = Sqr(x 2 + y 2)UO = Atn(Z * a

49、 / p / BB)b = Atn(Z + EPS * BB * Sin(UO) 3) / (p - e2 * a * Cos(UO) 3)p1 = Sqr(1# + (1# - e2) * Tan(b) 2)b = Atn(Z / p + a * e2 * Tan(b) / p / p1)l = Atn(y / x)If b 0# Then b = b + 2# * piIf l 0# Then l = l + 2# * piU = Atn(BB / a * Tan(b)H = Sqr(p - a * Cos(U) 2 + (Z - BB * Sin(U) 2)If (p - a * Cos

50、(U) 0# Then H = -HCase 2RN = a / Sqr(1# - e2 * Sin(b) * Sin(b)x = (RN + H) * Cos(b) * Cos(l)y = (RN + H) * Cos(b) * Sin(l)Z = (RN * (1# - e2) + H) * Sin(b)End SelectEndEnd SubSub【精品文档】如有侵权,请联系网站删除,仅供学习与交流.精品文档.四四 大地主题问题正反计算大地主题问题正反计算参考椭球面是大地测量计算的基准面。 大地坐标是椭球面上的基本坐标系, 根据大地测量的观测成果 (如距离与方向) ,从大地原点出发,逐点

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁