3 窗体功能原理分析
3.1 日常测量计算
3.1.1 角度弧度互化
“度”和“弧度”是度量角大小的两种不同的单位,在一般测量仪器观测得到的角度值都是度分秒的形式,在数据处理时都以“度”(如94度5分18秒,输入时为:94.0518度)的形式输入,而在计算机编程中,涉及到的数学模型和函数计算等一般都是用弧度进行计算,本程序包含的三角函数的运算,规定必须以弧度的形式将角度代入计算,因此有必要设计角度弧度互化的程序。在进行角度弧度互化程序设计之前,需要将实际测量当中,角度弧度的相关原理概念,转化的公式方法弄清楚。
由概念可知,一个平角是π弧度,即180“度”=π“弧度”,1“度”=π/180“弧度”,大约为0.017453“弧度”。因此,可以得到将度转化为弧度的公式:弧度=度×π/180。同理可知,弧度转化为度的公式可以写成:度=弧度×180°/π[4]。
本程序共分为两个部分:
角度转化为弧度:日常观测值都是角度,而计算需要化为弧度。
弧度转化为角度:测量涉及角度计算都是弧度,而输出结果往往为角度。
两部分将分别用command_click事件实现计算功能。两功能均调用fix()函数,语法是fix(number),功能为删除number参数的小数部分并返回以整数表示的结果。int()和fix()函数的区别在于如果number参数为负数时,int()函数返回小于或等于number的第一个负整数,而fix()函数返回大于或等于number参数的第一个负整数[5]。例如,int()将-7.4转换为-8,而fix()函数将-7.4转换为-7。
(1) 角度转化为弧度
编程大致思路为:度分秒——>度——>弧度
主要代码如下:
Private Sub Command1_Click()
Dim du%, fen%, miao%, jiaodu# '定义du,fen,miao分别记录录入角度值的“度”“分”“秒”
dufenmiao = Val(Text1.Text)
du = Fix(dufenmiao)
dufenmiao = (dufenmiao - du) * 100
fen = Fix(dufenmiao)
miao = (dufenmiao - fen) * 100
jiaodu = du + fen / 60 + miao / 3600
dutohu = jiaodu * pi / 180 '角度转化为弧度公式:弧度=度×π/180
Text2.Text = Format(dutohu, "0.000000")
End Sub来`自^优尔论*文-网www.youerw.com
(2) 弧度转化为角度
编程大致思路为:弧度(RAD)——>度(DEG)——>度分秒
主要代码如下:
hu = hu * 180 / pi '弧度转化为度的公式:度=弧度×180°/π
du = Fix(hu)
hu = (hu - du) * 60
fen = Fix(hu)
hu = (hu - fen) * 60
miao = Fix(hu + 0.5)
If miao = 60 Then
fen = fen + 1
miao = 0
End If
If fen = 60 Then
du = du + 1
fen = 0
End If
hutodu = du + fen / 100 + miao / 10000 '度分秒形式
If hutodu < 0 Then '角度调整