用vb设计一个可走动的机械式时钟,要求有时针、分针、秒针。

每句代码必须要有解释,跪求高手帮忙,急用!!!!做得好的,我的分全送!!!... 每句代码必须要有解释,跪求高手帮忙,急用!!!!
做得好的,我的分全送!!!
展开
 我来答
VB妮可
2007-10-26 · TA获得超过3333个赞
知道大有可为答主
回答量:2574
采纳率:0%
帮助的人:0
展开全部
呵呵,本转一个VB吧主CBM666写的时钟代码..

'添加 Line1 Line2 Line3 Timer1

Dim xx1%, yy1% '宣告变量xx1,yy1为整型(给圆心用的)
Private Sub Form_Load()
Me.AutoRedraw = True '重画为真
'窗体置中
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - meiheight) \ 2
'计算圆心的x轴 xx1
xx1 = Me.Width \ 2
'计算圆心的y轴 yy1
yy1 = (Me.Height - 405) \ 2
'将下面3根针的起点x1,y1全定位在圆心上
Line1.X1 = xx1: Line1.Y1 = yy1
Line2.X1 = xx1: Line2.Y1 = yy1
Line3.X1 = xx1: Line3.Y1 = yy1
'画钟的外匡让线条粗一点
Me.DrawWidth = 5
'画一个圆
Me.Circle (xx1, yy1), 950
Line2.BorderWidth = 1 '秒针的粗度
Line2.BorderColor = QBColor(12) '秒针的颜色

Line1.BorderWidth = 2 '分针的粗度
Line1.BorderColor = QBColor(14) '分针的颜色

Line3.BorderWidth = 3 '时针的粗度
Line3.BorderColor = QBColor(10) '时针的颜色
Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
Me.Caption = Time '标题栏显示现在时间
' Second Hand '画秒针
'计算秒针的角度,每一秒是 360度除以60秒=6度, 所以要乘上6
sdeg = Second(Time) * 6
'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 秒针跑了N度就乘上N
srad = (3.14 / 180) * sdeg
'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.x2在什么位置
Line2.X2 = Line2.X1 + (900 * Sin(srad))
'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.y2在什么位置
Line2.Y2 = Line2.Y1 - (900 * Cos(srad))

' Minute Hand '画分针
'计算分针的角度,每一分是360度除以60分=6度, 所以要乘上6,秒针动分针也会动,所以还要加上秒针移动所产生的分针移动.
'秒针转了1圈360度,分针才会前进1分钟=6度,所以比例是 6/360等于 1/60
Mdeg = Minute(Time) * 6 + (sdeg * 1 / 60)
'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 分针跑了N度就乘上N
mrad = (3.14 / 180) * Mdeg 'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 分针跑了N度就乘上N
'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.x2在什么位置
Line1.X2 = (750 * Sin(mrad)) + Line1.X1
'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.y2在什么位置
Line1.Y2 = Line1.Y1 - (750 * Cos(mrad))

' Hour Hand '画时针
'计算时针的角度,每一小时时针跑30度,分针动时针也会动,所以还要加上分针移动所产生的时针移动.
'分针转了1圈360度,时针才会前进1刻划=30度,所以比例是 30/360等于 1/12
hdeg = Hour(Time) * 30 + (Mdeg / 12)
'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 时针跑了N度就乘上N
hrad = (3.14 / 180) * hdeg
'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.x2在什么位置
Line3.X2 = (500 * Sin(hrad)) + Line3.X1
'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.y2在什么位置
Line3.Y2 = Line3.Y1 - (500 * Cos(hrad))
End Sub

参考资料: http://hi.baidu.com/cbm666/blog/item/5729f736f7d902300a55a991.html

dl_会飞的青蛙
2007-10-26 · TA获得超过2456个赞
知道大有可为答主
回答量:3294
采纳率:0%
帮助的人:3378万

参考资料: vb吧

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式