模拟电子钟 带语音报时功能
Private Sub huayuan( )
Dim x As Double Dim y As Double For i = 0 To 360
x=(1–Sin(i/360*2*3.1415926))*(Form1.ScaleHeight/2–100)+100
y=(1–Cos(i/360*2*3.1415926))*(Form1.ScaleHeight/2–100)+100 Pset(x,y) Next i End Sub
Private Sub Form _ Activate( ) huayuan End Sub
上面的代码不难,好好思考一下吧.下面是运行结果:
上面的例子里,我们使用360个点组成了一个密集度挺高的圆形,可是既然vb中已给我们提供了现成的画圆形的函数,为什么不用呢?但通过上面的例子,我们应该想到,如果我们将360个点,变成60个点,那不就正好是一个钟表的刻度吗?!这样的话我们只需要改动两个地方,一个是点的个数,另一个是点与点之间的弧度,应该为360度的60分之一,也就是每60度画一个点。代码如下:
Private Sub huabiaopan ( ) 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) Next i
End Sub
Private Sub Form _ Activate ( ) huabiaopan End Sub
下面是运行结果: (为了看得清楚些,我将颜色设为了红色,大家可以随喜好自行修改,方法当然是在Pset函数中了)
看来我们距离成功越来越近了。对于钟表里的三个针来说,每一时刻都会指向其中一个刻度,所以我们只要在其中添加代码,让它实现从圆心到所指刻度画直线就可以实现钟表里的三个针了。
下面是关于其中一个针的走动,代码如下: