Line(Form1.ScaleHeight/2,Form1.ScaleHeight/2)-(x,y),QBColor ( 1 )
huamiao = a - 1
End Function
Private Sub Timer1 _ Timer ( )
mz =Second(time)
mz =60–mz ‘因为三角函数中,角度的变化方向,正好与钟表的方向相反,
‘所以60减去就相当于将角度变为负值,也就是说,和原来的角度增长方向正好相反,与钟表的增长方向相同。
mz = huamiao ( mz )
End Sub
下面是运行效果:

好了,现在我们可以加上,分针和时针了.下面是源代码和运行结果:
' = = = = = = = = = = = = = = = = = = = = = =
' 以下语句能画出表盘
‘ 六十个点表示六十个刻度,
' = = = = = = = = = = = = = = = = = = = = = =
Private Sub huayuan ( )
Dim x As Double
Dim y As Double
For i = 0 To 60
x = ( 1 – Sin ( i / 60 * 2 * 3.1415926 ) ) * ( Form1.ScaleHeight / 2 – 100 ) 100
y = ( 1 – Cos ( i / 60 * 2 * 3.1415926 ) ) * ( Form1.ScaleHeight / 2 – 100 ) 100
PSet ( x , y ) , QBColor ( 12 )
Next i
End Sub
‘ = = = = = = = = = = = = = = = = = = = = = = = = = =
‘下面代码作用是画出时针走的路线
‘时针是12个刻度,表示是12个钟点
‘ = = = = = = = = = = = = = = = = = = = = = = = = = =
Private Function xianshishi ( a As Integer )
'抹除前一次画的线
x = (1–Sin((a 1)/12*2*3.1415926)) * ( Form1.ScaleHeight/2–800) 800
y = (1–Cos((a 1)/12*2*3.1415926)) * ( Form1.ScaleHeight/2–800) 800
Line (Form1.ScaleHeight/2,Form1.ScaleHeight/2)-(x,y),QBColor(7)
'开始画後一秒的线
x = (1–Sin(a/12*2*3.1415926))*(Form1.ScaleHeight/2–800) 800
y = (1–Cos(a/12*2*3.1415926))*(Form1.ScaleHeight/2–800) 800
Line (Form1.ScaleHeight/2,Form1.ScaleHeight/2)-(x,y),QBColor ( 1 )
xianshishi=a-1
End Function
‘ = = = = = = = = = = = = = = = = = = = = = = = = = =
‘下面代码作用是画出秒针走的路线
‘秒针是六十个刻度,表示是六十个秒点
‘ = = = = = = = = = = = = = = = = = = = = = = = = = =
Private Function xianshimiao ( a As Integer )
'抹除前一次画的线
x =(1–Sin((a 1)/59*2*3.1415926))*(Form1.ScaleHeight/2–200) 200
y =(1–Cos((a 1)/60*2*3.1415926))*(Form1.ScaleHeight/2–200) 200
Line(Form1.ScaleHeight/2,Form1.ScaleHeight/2)-(x,y),QBColor(7)
'开始画後一秒的线
x = (1–Sin(a/59*2*3.1415926))*(Form1.ScaleHeight/2–200) 200
y = (1–Cos(a/60*2*3.1415926))*(Form1.ScaleHeight/2–200) 200
Line ( Form1.ScaleHeight/2 ,Form1.ScaleHeight/2)-(x,y),QBColor(1)
xianshimiao = a - 1
End Function
‘ = = = = = = = = = = = = = = = = = = = = = = = = = =
‘下面代码作用是画出分针走的路线
‘分针是六十个刻度,表示是六十个分点
‘ = = = = = = = = = = = = = = = = = = = = = = = = = =
Private Function xianshifen ( a As Integer )
'抹除前一次画的线
x =(1–Sin((a 1)/59 * 2 * 3.1415926)) * ( Form1.ScaleHeight/2–400) 400
y =(1–Cos((a 1)/60 * 2 * 3.1415926)) * ( Form1.ScaleHeight/2–400) 400
Line (Form1.ScaleHeight/2,Form1.ScaleHeight/2)-(x,y),QBColor(7)
'开始画後一秒的线
x =(1–Sin(a/59*2*3.1415926)) * (Form1.ScaleHeight/2–400) 400
y =(1–Cos(a/60*2*3.1415926)) * (Form1.ScaleHeight/2–400) 400
Line (Form1.ScaleHeight/2, Form1.ScaleHeight/2)-(x,y),QBColor(1)
xianshifen = a - 1
End Function
‘ = = = = = = = = = = = = = = = = = = = = = = = =
‘ 每秒钟触发一次此事件,从而获取当时的时间,并调用相应的函数,画出三个针的位置
‘ = = = = = = = = = = = = = = = = = = = = = = = =
Private Sub Timer1 _ Timer ( )
miao = Second (time)
miao = 60 – miao
fen = Minute (time)
fen = 60 - fen
shi = Hour (time)
If shi > = 12 Then ‘因为一天之内时针要走二十四个钟头,也就是要走两圈,所以将下午和晚上的时间减去十二,就可以确定时针准确的位置
shi = shi - 12
End If
shi = 12 - shi
miao = xianshimiao ( miao )
fen = xianshifen ( fen )
shi = xianshishi ( shi )
End Sub
‘ = = = = = = = = = = = = = = = =
‘此事件,在窗体最初载入时触发,主要作用是画出表盘和刻度
‘ = = = = = = = = = = = = = = = =
Private Sub Form _ Load ( )
Form1.Width = Form1.Height-250
Huayuan ‘画刻度
Form1.Circle(Form1.ScaleHeight/2,Form1.ScaleHeight/2),Form1.ScaleHeight/2-30
End Sub
运行效果如下图所示:

文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




