如何用VB设计如图所示的时钟

 我来答
zdingyun
2015-06-18 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48174
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

提供个做好钟的代码,自己修改为适合给出图片的效果。

Option Explicit
    Dim a As Integer, b As Integer, rad As Double
    Dim i

Private Sub Form_Load()
    a = Me.ScaleWidth \ 2 '圆心X坐标
    b = Me.ScaleHeight \ 2 '圆心Y坐标
    rad = Atn(1) / 45 '1角度的弧度数
    Me.DrawWidth = 3
    Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
    Dim angle1 As Double, angle2 As Double, angle3 As Double
    angle1 = ((Hour(Now) Mod 12) * 30 + Minute(Now) / 2 - 90) * rad '时针的角度
    angle2 = (Minute(Now) * 6 + Second(Now) / 10 - 90) * rad '分针的角度
    angle3 = (Second(Now) * 6 - 90) * rad '秒针的角度
    Cls '清除画面,以便画下一秒的状态
    CircleDemo
    Me.Circle (a, b), 1000, vbYellow '画石英钟轮廓
    '[object.]Circle [Step](x, y), radius[, color]
    For i = 1 To 12
        Me.CurrentX = a - IIf(i < 7, 115, 170) + 1100 * Cos((i * 30 - 90) * rad) '刻度X坐标
        Me.CurrentY = b - 90 + 1100 * Sin((i * 30 - 90) * rad) '刻度Y坐标
        Print i '画刻度
    Next
    Me.Line (a, b)-(a + 300 * Cos(angle1), b + 250 * Sin(angle1)), vbBlue '画时针
    Me.Line (a, b)-(a + 400 * Cos(angle2), b + 550 * Sin(angle2)), vbBlue '画分针
    Me.Line (a, b)-(a + 600 * Cos(angle3), b + 600 * Sin(angle3)), vbRed '画秒针
End Sub

Sub CircleDemo()
   Dim Radius, r, g, b, Xpos, redius, Ypos
'将红色设置为随机数。
   r = 255 * Rnd
'将绿色设置为随机数。
   g = 255 * Rnd
'将蓝色设置为随机数。
   b = 255 * Rnd
'将 x 坐标设置在窗体中间。
   Xpos = ScaleWidth / 2
'将 y 坐标设置在窗体中间。
   Ypos = ScaleHeight / 2
   '将半径设置在窗体高度的 0 到 50% 之间。
   Radius = ((Ypos * 0.9) + 1) * Rnd
   '用随机颜色画圆。
   Circle (Xpos, Ypos), Radius, RGB(r, g, b)
End Sub

更多追问追答
追问
大神 不会啊 能不能编一个符合所有要求的 就那个样子的
追答
不会就学习,特别是自己码代码。不要指望别人替你完成全部代码,不然是永远学不会VB的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式