MATLAB-闹钟GUI的创建(3)

2019-04-09 21:07

2. 设计思路

2.1.创建时钟的外层

我做的是一个典型的时钟,采用的圆形的外表。

实现:圆形外表:可以使用画图函数,如plot,ezplot,fplot等函数画圆。颜色填充:然后直接线条属性定义,加大其线条宽度,以及设置相应的颜色。 2.2.时钟的时针,分针,秒针

指针的外形:指针的外形,采用的是条形(矩形)的指针。

时针角度:使用clock获得当前时间,计算当前的时间的小时t,除以12,获得所转过角度的百分比,再乘以2*pi,得到时针转过的角度,但是,时针转过的角度,是从时钟“12点”位置顺时针开始算的,和我们使用x轴(即时钟“3点”位置)逆时针的计算方法有差别,所以需要矫正,对求出来的时针转过的角度去相反数,在加上pi/2,就可以实现从时钟“12”位顺时计算,转换到时钟“3点”逆时计算。

时针角度:同理,使用clock获得当前时间,计算当前的时间的分钟t,除以60,获得所转过角度的百分比,再乘以2*pi,得到分针转过的角度,但是,分针转过的角度,是从分针“12点”位置顺时针开始算的,和我们使用x轴(即时钟“3点”位置)逆时针的计算方法有差别,所以需要矫正,对求出来的分针转过的角度去相反数,在加上pi/2,就可以实现从时钟“12”位顺时计算,转换到时钟“3点”逆时计算。

时针角度:使用clock获得当前时间,计算当前的时间的秒数t,除以60,获得所转过角度的百分比,再乘以2*pi,得到秒针转过的角度,但是,秒针转过的角度,是从时钟“12点”位置顺时针开始算的,和我们使用x轴(即时钟“3点”位置)逆时针的计算方法有差别,所以需要矫正,对求出来的秒针转过的角度去相反数,在加上pi/2,就可以实现从时钟“12”位顺时计算,转换到时钟“3点”逆时计算。

初始位置:

方法一:使用fill函数,求出条形(矩阵)指针的四个角的坐标,然后用fill函数对四个角的坐标所围成的区域进行填充。保存fill的句柄。

方法二:使用plot函数,求出条形指针头(指向数字的一头)和尾的中点坐标,假设头坐标为(x1, y1),尾坐标为(x2, y2),可以这样写:

plot( [x2 x1], [y2 y1], 'LineWidth' , c1, 'color', [v1 v2 v3] ) ;

[x2 x1], [y2 y1]是plot函数需要描绘的坐标,这将会描绘出一条直线,使用'LineWidth'属性,增加直线的宽度,就能形成条形指针,再使用'color'属性(采用的256位颜色表,见附录),进行自己喜欢的颜色的填充。保存plot的句柄。

下一个位置:

方法一:更新时间,计算好位置,使用保存好的fill的句柄,设置'XData','YData' 属

11

性,把其改为更新的位置。

方法二:更新时间,计算好位置,使用保存好的plot的句柄,设置'XData','YData' 属性,把其改为更新的位置。 2.3.数字时钟

为了让用户更加清晰地知道时间,在物理时钟的下面,增设了一个数字时钟。 实现:创建一个edit控件,保存其句柄,获得当前时间,保存在一个数组里,用edit的句柄设置String为当前时间的时分秒。 2.4.闹钟功能

实现:获得用户需要设置的时间,创建一个菜单,菜单的作用为调用闹钟函数。 闹钟功能闹钟函数的实现:创建一个输入对话框inputdlg,获取用户要设定的时间,以及需要提醒的事件,计算出与当前时间的时间差,创建一个计时器timer,作用为调用提醒函数,然后以时间差为延迟,启动timer。提醒函数的作用是调用铃声,以及显示用户所设定的事件。 2.5.背景

为了最大程度满足用户审美需求,使用imread , image函数设置相关的背景图,使时钟更生动。

12


MATLAB-闹钟GUI的创建(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福楼拜《包法利夫人》中查尔斯包法利形象解析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: