一、角度转换
在工程实际中我们是用角度(60进制)来记录观测数据,但是在计算中计算机(计算器)所能接受的往往是百分制的弧度,因此就有必要将度分秒表示的观测值转换为百分制的弧度以计算机所能接受的方式进行计算。
1、度分秒转换弧度计算
计算的关键是要将度分秒分离出来,在这里要用到VB的Int函数。 1)函数的定义形式如下: 语法:
Int(number) 必要的 number 参数是 Double 或任何有效的数值表达式。如果 number 包含 Null,则返回 Null。
说明:
Int删除 number 的小数部份而返回剩下的整数。如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数,例如,Int 将 -8.4 转换成 -9。
示例: Dim dfm
dfm = Int(124.3425) ' 返回 124。返回参数的整数部分。 2)程序实现步骤
① 新建“教学程序”工程
图1:新建工程
新建窗体的属性设置如下: 名称:FrmJD Caption:角度转换
在窗体FrmJD上放置三个标签Label1、Label2、Label3,三个文本框Text1、Text2、Text3,两个命令按钮Command1、Command2,各控件对象的属性设置如下表所示。
2.1 控件对象属性设置
对象 Label1 Label2 Label3 Text1 属性 Caption Caption Caption Text 值 角度 小数度 弧度 对象 Text2 Text3 Command1 Command2 属性 Text Text Caption Caption 值 计算 退出
2.2 角度转换程序设计界面
代码如下:
Option Explicit '强制变量定义 Const PI = 3.1415926535 '定义常量 Private Sub Command1_Click()
Dim m_dfm As Double '输入的数值,6进制度分秒 Dim m_d As Double '定义变量度 Dim m_f As Double '定义变量分 Dim m_xsd As Double '小数度
m_dfm = Val(Text1.Text) '将字符串常量转换为数字常量 m_d = Int(m_dfm) '利用int()函数将度取出 m_dfm = (m_dfm - m_d) * 100
m_f = Int(m_dfm) '取出分 m_dfm = m_dfm * 100 '得到秒
m_xsd = m_d + m_f / 60 + m_dfm / 3600 '转换为小数度 Text2.Text = Str(m_xsd) '输出小数度 Text3.Text = Str(m_xsd * PI / 180) '输出弧度值 End Sub
Private Sub Command2_Click() Unload Me End Sub
2、弧度转换度分秒计算
在“教学程序”工程中新建一窗体,窗体属性设置如下: 名称:Frmhd Caption:转换弧度
在窗体Frmhd上放置两个标签Label1、Label2,两个文本框Text1、Text2,两个命令按钮Command1、Command2,各控件对象的属性设置如下表所示。
2.2 控件对象属性设置
对象 Label1 Label2 Text1 属性 Caption Caption Text 值 弧度 角度 对象 Text2 Command1 Command2 属性 Text Caption Caption 值 计算 退出
2.3 转换弧度程序设计界面
Private Sub Command1_Click() Dim hd As Double '定义接收的弧度值 Dim xsd As Double '定义变量存储小数度
Dim dfm As Double '定义转换得到的度分秒表示的数值 Dim d As Double '定义变量度 Dim f As Double '定义变量分
hd = Val(Text1.Text) '由文本框得到要转换的弧度值 xsd = hd * 180 / 3.1415926535 '转换为小数度 d = Int(xsd) '得到相应的度 xsd = (xsd - d) * 60 '转换为分 f = Int(xsd) '提取分 xsd = (xsd - f) * 60 '得到相应的秒值
dfm = d + f * 0.01 + xsd * 0.0001 '转换为度分秒表示的格式 Text2.Text = Format(dfm, \ '结果输出 End Sub
3、format()函数
根据格式表达式中的指令来格式化输出数值、日期或字符串。 该函数格式如下:
Format(表达式,[格式字符串])
其中,表达式为要格式化的数值、日期和字符串的表达式,格式字符串表示要输出的指定的格式。格式字符串有数值格式、日期格式、和字符格式三类。 下面表格标识了一些可用来创建用户自定义数值格式的字符: 字符 说明 数字占位符。显示一位数字或是零。如果表达式在格式字符串中 0 的位置上有一位数字存在,那么就显示出来;否则,就以零显示。如果数值的位数少于格式表达式中零的位数,那么就把前面或后面的零补足。如果数值的小数点右方位数多于格式表达式中小数点右面零的位数,那么就四舍五入到有零的位数的最后一位。如果数值的小数点左方位数多于格式表达式中小数点左面零的位数,那么多出的部分都要不加修饰地显示出来。 数字占位符。显示一位数字或什么都不显示。如果表达式在格式字符串中“#”的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。 数值表达式 格式字符串 结果 0 1234.567 1234.567 “00000.0000” “000.00” 01234.5670 1234.567 # 1234.567 1234.567 “#####.####” “###.##” 1234.567 1234.57 此符号的工作原理和“0”数字占位符大致相同,不同之处只有在当表达式中数值的位数少于“#”的位数时,不会把前面或后面的零显示出来。 小数点占位符。小数点占位符用来决定在小数点左右可显示多少位数。如果格式表达式在此符号左边只有正负号,那么小于 1 的数字将以小数点为开头。如想在小数前有“0”的话,那么在小数点占位符前加上“0”这个数字占位符。小数点占位符的实际字符在格式输出时要看系统的数字格式而定。 . 1234 “0000.00” 1234.00
4、框架控件和单选按钮的应用及选择语句初步
2.3 选择语句程序设计界面
Frame 控件为控件提供可标识的分组。Frame 可以在功能上进一步分割一个窗体-例如,把 OptionButton 控件分成几组。
说明
为了将控件分组,首先需要绘制 Frame 控件,然后绘制 Frame 里面的控件。这样就可以把框架和里面的控件同时移动。如果在 Frame 外部绘制了一个控件并试图把它移到框架内部,那么控件将在 Frame 的上部,这时需分别移动 Frame 和控件。
为了在 Frame 中选择多个控件,在使用鼠标在控件周围绘制框时,按住 CTRL 键。
二、坐标正反算: 1、坐标正算
x?x0?s?cosAy?y0?s?sinA2、坐标反算
1)计算两点之间的距离。
s?(xj?xi)?(xj?xi)?(yj?yi)?(yj?yi)
2)方位角计算
y=arccos(x),定义域[-1,1] , 值域[0,π]; y=arctan(x),定义域(-∞,+∞),值域(-π/2,π/2);