开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1789|回复: 5
收起左侧

VB 编写简易的小时钟【新手教学】

[复制链接]
发表于 2011-5-12 19:28:49 | 显示全部楼层 |阅读模式   江苏省南京市
添加 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 SubPrivate 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
发表于 2011-5-12 20:04:21 | 显示全部楼层   浙江省杭州市
一个小时钟就这么复杂呀  我要努力了  
回复 支持 反对

使用道具 举报

发表于 2011-6-11 03:00:49 | 显示全部楼层   上海市上海市
支持 哈哈 {:3_232:}
回复 支持 反对

使用道具 举报

发表于 2011-7-31 00:57:39 | 显示全部楼层   辽宁省沈阳市
哇,这样在幻灯里能变吧
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
发表于 2011-8-8 16:55:57 | 显示全部楼层   福建省福州市
' Second Hand '画秒针
' Minute Hand '画分针
' Hour Hand '画时针

(我是菜鸟,请问)是不是全面没有注释号啊?
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2011-8-16 12:51:30 | 显示全部楼层   浙江省台州市
好复杂 好复杂~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表