利用VB实现动态时钟的算法分析-函数

利用VB实现动态时钟的算法分析函数论文导读::利用VisualBasic制作模拟表针转动并伴有动态图像及时间显示的时钟,当时钟到达整点时响铃。论文关键词:控件,函数,方法常见的时钟均是以字符形式显示当前的时间,这种显示方式太过死板,为使时间的显示形象、生动,我利用VB设计了一个时、分、秒针动态转动的时钟的算法。VB中用来显示时间最简单的方法是利用函数取出时、分、秒以字符形式显示,要模拟真实的指针转动必须配合VB中其他控件中国知网论文数据库。1、编程思路利用VB中的形状控件画出时、分、秒针,为使是、分、秒针动态转动,首先可使用line方法初始化时、分、秒针一端的坐标为用户自定义坐标系统的原点,再利用时、分、秒转过的角度求出时、分、秒针另一端的坐标函数,然后利用line方法确定时、分、秒针在自定义坐标系统中另一端的位置。下面以某一时刻为例说明实现时针转动的具体算法。设当前时间为h:m:s,时针长为R1,端点坐标为(x1,y1),分针长为R2,端点坐标为(x2,y2),秒针长为R3,端点坐标为(x2,y2),为求出三个端点的坐标,只须求出他们转过的角度,利用极坐标与直角坐标的关系即可求出端点坐标。图1给出直角坐标系统中时、分、秒针的坐标与时、分、秒针转过的角度的关系(默认坐标系统的y轴正方向向上);利用时钟控件的Timer事件实现秒针每转一次加载一副背景图像,从而达到动态图像的效果。秒针每走一秒转过的角度为6度,走过s秒,则其转过的角度为6s,若y轴正方向向上,则秒针的顶点坐标值为:X3=sin((6*s)*∏/180)*r3y3=cos((6*s)*∏/180)*r3若y轴正方向向下,则顶点坐标值为:X3=sin((180-6*s)*∏/180)*r3y3=cos((180-6*s)*∏/180)*r3分针每走一分转过的角度为6度,走过m分,(毫秒忽略不计)则分针转过的角度为6m函数,若y轴正方向向上,则分针的顶点坐标值为:X2=sin((6*m)*∏/180)*r2Y2=cos((6*m)*∏/180)*r2若y轴正方向向下,则顶点坐标值为:X2=sin((180-6*m)*∏/180)*r2Y2=cos((180-6*m)*∏/180)*r2时针每走一小时其转过的角度为30度,考虑到系统取出的小时值为整点时间,而时针有指到两个整点时刻的时候,所以时针端点坐标的计算应考虑到时针转过整点时刻的情况,把时针转过整点时刻的分钟值转化为小时值,即一分钟为1/60小时,则可求出时针转过的总小时值,即若当前时间为h小时m分钟,则时针转过的总小时值,即若当前时间为h小时m分钟,则时针转过的角度为30*(h+m/60)度,那么时针的端点坐标值为:X1=sin((30*(h+m/60))*∏/180)*r1Y1=cos((30*(h+m/60))*∏/180)*r1若自定义坐标系统的y轴正方向向下,则时针的端点坐标值为:X1=sin((180-30*(h+m/60))*∏/180)*r1Y1=cos((180-30*(h+m/60))*∏/180)*r1因为时、分、秒针转过的角度不断变化,所以时、分、秒针的端点坐标也在不断变化,从而实现了时、分、秒针动态转动的效果中国知网论文数据库。时、分、秒的时间值分别利用函数hour(time)、minute(time)、second(time)求得(time为系统时间)。2、流程图如下3.程序的主要源代码如下PrivateSubTimer1_Timer()‘显示系统时间Label1.Visible=TrueLabel1.Caption=Time$‘装入图形函数,以实现秒针每走一秒背景图标动态的效果StaticpickbmpasintegerIfpickbmpthenImage1.picture=loadpicture(“e:?bmoon02.ico”)ElseImage1.picture=loadpicture(“e:?bmoon08.ico”)EndifPickbmp=notpickbmpLine1.visible=true:line2.visible=true:line3.visible=true‘确定指针的初始位置Line2.x1=0:line2.y1=0Line1.x1=0:line1.y1=0Line3.x1=0:line3.y1=0‘在指定位置处打印时钟的刻度Form1.forecolor=vbGreenForm1.currentX=-7Form1.currentY=68Form1.print“6”Form1.forecolor=vbRedLine(-2,95)-(-2,85)Form1.forecolor=vbGreenForm1..currentX=-10Form1.currentY=-85Form1.print“12”Form1.forecolor=vbRedLine(-2,-95)-(-2,-85)Form1.forecolor=vbGreenForm1..currentX=70Form1.currentY=-10Form1.print“3”Form1.forecolor=vbRedLine(80,-3)-(85,-3)Form1.forecolor=vbGreenForm1..currentX=-75Form1.currentY=-10Form1.print“9”Form1.forecolor=vbRedL...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?