VB设计动画时钟

 VB设计动画时钟

程序名:Sec-Time.vbp

程序类别:完整的VB程序

功能:显示一个动画时钟,该时针随着每一秒而动态变化。

程序说明

1.如何画时钟表盘上的所有直线元素?

用Load命令建立原始Line控制的14个拷贝(因为表盘有12个点和时、分、秒共15个Line),该控制数组每一个实例的端点坐标属性设置为每条线在时钟表盘上的适当位置,这些拷贝中大多数只放置一次,而3个Line控制每秒钟更新一次,产生时钟指针移动的感觉。

注意:在应用程序代码中并没有直接擦除任何一条线。当我们改变每一个Line控制的端点时,每一根针

在移动时擦除和重画的所有技术工作都由VB来处理。

2.如何修改时针的形状?

通过调整代码中的属性设置,可以改变时钟的形状。例如:通过改变每一个Line控制的Borderwidth属性设置,可以建立更细或更粗的线。

3. 计时器的Interval(间距)属性设置

计时器的Interval属性设置为100,即为1/10秒。

程序的编写与执行

(1)新建工程

先新建一个工程(工程类型为标准EXE),然后用“工具箱”中的工具加入一个Timer1(计时器)和line1(直线),其index(指针)分别设置为空和0。然后双击Form1窗体,输入源代码。

(2)程序源代码

Timer1.Interval = 100

Width = 4000

Height = 4000

Left = Screen.Width / 2 - 2000

Top = (Screen.Height - Height) / 2

End Sub

Private Sub Form_Resize()

Dim I, Angle

Static flag As Boolean

If flag = False Then

flag = True

For I = O To 14

'画出表盘12个点和时、分、秒共15个LINE

If I > 0 Then Load Line1(I)

Line1(I).Visible = True

Line1(I).BorderWidth = 5

Line1(I).BorderColor = RGB(0, 128, 0) '设置LINE的精细和颜色

Next I

End If

For I = 0 To 14

Scale (-1, 1)-(1, -1)

Angle = I * 2 * Atn(1) / 3

Line1(I).X1 = 0.9 * Cos(Angle)

Line1(I).Y1 = 0.9 * Sin(Angle)

Line1(I).X2 = Cos(Angle)

Line1(I).Y2 = Sin(Angle)

Next I

End Sub

Private Sub timer1_Timer()

Const HH = 0

Const MH = 13

Const SH = 14

Dim Angle

Static LS

If Second(Now) = LS Then Exit Sub

LS = Second(Now)

Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60)) '设置时针

Line1(HH).X1 = 0

Line1(HH).Y1 = 0

Line1(HH).X2 = 0.3 * Cos(Angle)

Line1(HH).Y2 = 0.3 * Sin(Angle)

Angle = 0.1047 * (75 - (Minute(Now) + Second(Now) / 60)) '设置分针

Line1(MH).X1 = 0

Line1(MH).Y1 = 0

Line1(MH).X2 = 0.7 * Cos(Angle)

Line1(MH).Y2 = 0.7 * Sin(Angle)

Angle = 0.5236 * (75 - Second(Now) / 5) '设置秒针

Line1(SH).X1 = 0

Line1(SH).Y1 = 0

Line1(SH).X2 = 0.8 * Cos(Angle)

Line1(SH).Y2 = 0.8 * Sin(Angle)

Form1.Caption = Str(Now()) '窗口显示精确的日期和数字化的时间

以下程序在VB6.0中文版测试通过。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值