| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖, 2 人收藏
标题:很详细的时钟程序(使用line控件手画表盘表针)
取消只看楼主 加入收藏
水到渠成VB
Rank: 1
来 自:黑龙江
等 级:新手上路
帖 子:21
专家分:5
注 册:2013-9-24
结帖率:50%
收藏(2)
已结贴  问题点数:20 回复次数:3 
很详细的时钟程序(使用line控件手画表盘表针)
Option Explicit
'Line3 表示时针
'Line1(1) 表示分针(长度960)
'Line2 表示秒针(长度1200)
'Timer 定时器周期1s
'Label2 标签显示当前系统时间
Dim xx1 As Integer '表盘圆心坐标
Dim yy1 As Integer
Dim MyTime, MyHour, MyMinute, MySecond As Integer '定义当前时间,时,分,秒
Dim S_ang, M_ang, H_ang As Single '定义角度变量
Dim S_rad, M_rad, H_rad As Single '定义弧度变量
Dim S_Length, M_Length, H_Length As Integer '定义表针长度变量
Private Sub Form_Load()
xx1 = 2280  '由属性确定圆心坐标
yy1 = 1920
Line3.X1 = xx1  '校准表盘坐标原点
Line3.Y1 = yy1
Line1(1).X1 = xx1
Line1(1).Y1 = yy1
Line2.X1 = xx1
Line2.Y1 = yy1
MyTime = Now  '暂存当前时间值
MySecond = Second(MyTime)  '读取秒
MyMinute = Minute(MyTime)  '读取分
MyHour = Hour(MyTime)      '读取时
M_ang = MyMinute * 6       '任意一点分针角度
M_rad = (3.14 / 180) * M_ang
H_ang = MyHour * 30         '任意一点时针角度
H_rad = (3.14 / 180) * H_ang
Line1(1).X2 = Line1(1).X1 + (960 * Sin(M_rad))     '计算X2,Y2转动坐标 (以单位圆Y轴为0度)
Line1(1).Y2 = Line1(1).Y1 - (960 * Cos(M_rad))
Line3.X2 = Line3.X1 + (720 * Sin(H_rad))     '计算X2,Y2转动坐标 (以单位圆Y轴为0度)
Line3.Y2 = Line3.Y1 - (720 * Cos(H_rad))
End Sub
Private Sub Timer1_Timer()
Label2.Caption = Now
MyTime = Now  '暂存当前时间值
MySecond = Second(MyTime)  '读取秒
Label15.Caption = MySecond
MyMinute = Minute(MyTime)  '读取分
Label18.Caption = MyMinute
MyHour = Hour(MyTime)      '读取时
Label20.Caption = MyHour
S_ang = MySecond * 6       '任意一点秒针角度
M_ang = MyMinute * 6       '任意一点分针角度
M_rad = (3.14 / 180) * M_ang
H_ang = MyHour * 30         '任意一点时针角度
H_rad = (3.14 / 180) * H_ang
S_rad = (3.14 / 180) * S_ang
Line2.X2 = Line2.X1 + (1200 * Sin(S_rad)) '计算X2,Y2转动坐标 (以单位圆Y轴为0度)
Line2.Y2 = Line2.Y1 - (1200 * Cos(S_rad))
If MySecond = 59 Then
Line1(1).X2 = Line1(1).X1 + (960 * Sin(M_rad))     '计算X2,Y2转动坐标 (以单位圆Y轴为0度)
Line1(1).Y2 = Line1(1).Y1 - (960 * Cos(M_rad))
ElseIf MyMinute = 59 Then
Line3.X2 = Line3.X1 + (720 * Sin(H_rad))     '计算X2,Y2转动坐标 (以单位圆Y轴为0度)
Line3.Y2 = Line3.Y1 - (720 * Cos(H_rad))
End If
End Sub
请看到的朋友们,挑毛病找缺陷。
搜索更多相关主题的帖子: 定时器 标签 
2014-02-10 11:09
水到渠成VB
Rank: 1
来 自:黑龙江
等 级:新手上路
帖 子:21
专家分:5
注 册:2013-9-24
收藏
得分:0 
回复 5楼 vbvcr51
恩,对的。就是三角函数。
2014-02-14 11:42
水到渠成VB
Rank: 1
来 自:黑龙江
等 级:新手上路
帖 子:21
专家分:5
注 册:2013-9-24
收藏
得分:0 
回复 4楼 lowxiong
不错,做的的确很精细。向您学习了。
确实我没做您说的小数问题
以后有问题可以常常交流。
2014-02-14 11:45
水到渠成VB
Rank: 1
来 自:黑龙江
等 级:新手上路
帖 子:21
专家分:5
注 册:2013-9-24
收藏
得分:0 
回复 7楼 水到渠成VB
追加说明:
这个表实际上是有表盘的,只不过我用的是Line控件和shape控件,手工画的。确实不够好看。
2014-02-14 11:53
快速回复:很详细的时钟程序(使用line控件手画表盘表针)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036994 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved