试题七
阅读以下应用说明以及用Visual Basic 编写的程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[应用说明]
本应用程序的运行窗口中将显示一个简单的模拟时钟如下:
该圆形钟面上有时针、分针和秒针在运动,不断显示系统的当前时间。
在开发该应用时,首先建立一个圆形Shape 控件作为钟面(背景为白色)。设圆心为象素坐标(X0, Y0),半径为940。再在圆心处建立一个小的实心圆Shape 控件作为轴心。钟面上的刻度3,6,9,12 为四个标签。时针、分针、秒针(红色)为线型控件,名称分别为LineH、LineM、LineS,线宽属性值分别为:3,2,1,线长属性值分别为500,700,900。这三个线型控件的起点坐标都固定在(X0,Y0),其终点坐标随转角θ而动态变化:
设置定时器Timer1 使该时钟能反映系统的当前时间,其定时间隔为0.5 秒,该定时器的Interval 属性值应设置为 (1) 。每隔0.5 秒,秒针需要调整位置,但分针和时针只是在初始显示时以及在每次秒计数为0 时才需要调整位置(可节省计算量)。
[程序代码]
Const Pi = 3.1416
Const X0 = 1750
Const Y0 = 1150
Const LH = 500, LM = 700, LS = 900
Public first As Boolean
Private Sub Form_Load()
LineS.X1 = X0 ’秒针的起点位置
LineS.Y1 = Y0
LineM.X1 = X0 ’分针的起点位置
LineM.Y1 = Y0
LineH.X1 = X0 ’时针的起点位置
LineH.Y1 = Y0
first = True
End Sub
Private Sub Timer1_Timer()
S = Second(Time)
S_seta = Pi * (2) ’秒针的转角
LineS.X2 = X0 + LS * Sin(S_seta) ’秒针的终点位置
LineS.Y2 = Y0 - LS * Cos(S_seta)
If ( (3) ) Then
M = Minute(Time)
LineM.X2 = X0 + LM * Sin(Pi*M/30) ’分针的终点位置
LineM.Y2 = Y0 - LM * Cos(Pi*M/30)
H = Hour(Time)
If (H >= 12) Then H = H - 12
H_seta = Pi * ( (4) ) ’时针的转角
LineH.X2 = X0 + LH * Sin(H_seta) ’时针的终点位置
LineH.Y2 = Y0 - LH * Cos(H_seta)
first = (5)
End If
End Sub