用VB做一个电子时钟,是有表盘的那种,有分针和时针的,表盘上要有1—12的数字,用line画,有没有高手帮下

用VB做一个电子时钟,是有表盘的那种,有分针和时针的,表盘上要有1—12的数字,用line画,有没有高手帮下
可以的话请附上讲解啊~
creamrong 1年前 已收到1个回答 举报

丢丢妞 春芽

共回答了17个问题采纳率:100% 举报

Dim xx1%,yy1% '宣告变量xx1,yy1为整型(给圆心用的)
Private Sub Form_Load()
Me.AutoRedraw = True '重画为真 '窗体置中
Timer1.Interval = 500
Call Form_Resize
End Sub
Private Sub Form_Resize()
Me.Cls
'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 = 4 '画一个圆
Me.Circle (xx1,yy1),950
Me.DrawWidth = 2
For i = 0 To 11
Me.Line (950 * Cos(i * (3.14 * 2 / 12)) + xx1,950 * Sin(i * (3.14 * 2 / 12)) + yy1)-(850 * Cos(i * (3.14 * 2 / 12)) + xx1,850 * Sin(i * (3.14 * 2 / 12)) + yy1)
Me.CurrentX = 1100 * Cos(i * (3.14 * 2 / 12)) + xx1 - Me.TextWidth(CStr(i))
Me.CurrentY = 1100 * Sin(i * (3.14 * 2 / 12)) + yy1 - Me.TextHeight(CStr(i)) / 2
Me.Print IIf(i < 10,i + 3,i - 9)
Next
Line2.BorderWidth = 1 '秒针的粗度
Line2.BorderColor = QBColor(12) '秒针的颜色
Line1.BorderWidth = 2 '分针的粗度
Line1.BorderColor = QBColor(14) '分针的颜色
Line3.BorderWidth = 3 '时针的粗度
Line3.BorderColor = QBColor(10) '时针的颜色
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 Su

1年前

10
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 2.032 s. - webmaster@yulucn.com