vb 动画时钟 详细解释

来源:百度知道 编辑:UC知道 时间:2024/09/25 19:26:46
Const HH = 0
Const MH = 13
Const SH = 14
Dim Angle
Static LS
If Second(Time) = LS Then Exit Sub
LS = Second(Time)
Angle = 0.5236 * (15 - (Hour(Time) + Minute(Time) / 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(Time) + Second(Time) / 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.1047 * (75 - Second(Time))
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(Time)
请哪儿位高手详细解释这段代码,0.523 0.1047 0.3 0.7 0.8等数值是从哪儿得到的?函数的意思是什么!谢谢!

Const HH = 0
Const MH = 13
Const SH = 14
Dim Angle
Static LS
If Second(Time) = LS Then Exit Sub '返回当前秒数,与上次秒数对比一样则退出
LS = Second(Time) ‘
Angle = 0.5236 * (15 - (Hour(Time) + Minute(Time) / 60)) Line1(HH).X1 = 0 ’数学问题,把圆分为小时指针的的12份。也就是 2PEI/12 = 0.523.把时钟的点数取出乘以每份的角度再加上分针走的角度带到下的时针度数。同理下面的也是这样的原理。只不过把圆分成的份数不同,对应的角度也不同。
Line1(HH).Y1 = 0
Line1(HH).X2 = 0.3 * Cos(Angle),对应圆心用角度获取X2和Y2的坐标
Line1(HH).Y2 = 0.3 * Sin(Angle)
Angle = 0.1047 * (75 - (Minute(Time) + Second(Time) / 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.1047 * (75 - Second(Time))
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(Time)

我也有同感