MATLAB课程设计时钟.docx
- 文档编号:29947845
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:8
- 大小:78.65KB
MATLAB课程设计时钟.docx
《MATLAB课程设计时钟.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计时钟.docx(8页珍藏版)》请在冰豆网上搜索。
MATLAB课程设计时钟
MATLAB课程设计时钟
作者:
日期:
MATLAB制作时钟
扌商要:
MATLAB是一款强大的、应用广泛的软件,本文主要利用MATLAB的相关编程来设计实现时钟界而显示效果。
关键字:
MATLAB、时钟、界而
引言
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件oMATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
木文通过MATLAB编程设计时钟显示界面来体会它功能的强大和应用的广泛。
完整的时钟界而有时针、分针、秒针以及刻度等组成,下面详细介绍实现时钟界而的步骤。
1、设置时钟相关参数,比如界而大小、界面颜色,时钟名称等。
h二figure('menubar?
'none','color,,'white',...
'position',[200200320360],...
'name','北京时间');
2、显不刻度
这个时钟显示了四个刻度,分别是12、9、6、3,以下语句分别显
示了这四个刻度。
(1)定义一个text控件,显示刻度“12”
bl=uicontrol('parent',h,'style','text','string',‘12','fontsize',…
12,'position',[1562752020]);
(2)定义一个text控件,显示刻度“9”
b2=uicontrol('parent',h,'style*,'text','string*,‘9','fontsize',…
12,'position',[601752020]);
(3)定义一个text控件,显示刻度“6”
b3=uicontrol('parent',h,'style','text','string*,‘6','fontsize*,…
12,'pos辻ion',[156752020]);
(4)定义一个text控件,显示刻度“3”
b4=uicontrol('parent',h,'style','text,,'string*,‘3','fontsize,,…
12,'position',[2601752020]);
3、设置刻度,分别设置分针的刻度和小时的刻度。
(1)绘制表盘,绘制分钟的刻度
for
n=pi*2:
-pi/30:
pi/30
al=0.95*cos(n):
0.05*cos(n)/2:
cos(n);
bl二0.95*sin(n):
0.05*sin(n)/2:
sin(n);
plot(al,bl,'r-');
end
(2)绘制表盘,绘制小时的刻度
for
n=pi*2:
-pi/6:
pi/30
al二0.9*cos(n):
0.l*cos(n)/2:
cos(n);
bl二0.9*sin(n):
0.l*sin(n)/2:
sin(n);
plot(al,bl,'r」);
end
4、分别绘制秒针、分针、时针在相关时间的位置
(1)计算一秒以后秒针的角度位置
sital=sital+w1*pausetime;
(2)计算一秒以后分针的角度位置
sita2=sita2+w2*pausetime;
(3)计算一秒以后时针的角度位置
sita3=sita3+w3*pausetime;
综合以上过程,时钟界而基木己经出炉了,时钟的完整程序如下:
%function时钟
h=figure(1menubar1z1none1,.
1color1,1white1f.…
360],...
%定义一个edit控件,用于存储日
E该控件的类型为edit,可以编辑其内
$字体大小为12
1position1,[200200320
*name*,1北京时间,);
el=uicontrol(1parent1zhz...
期
1style1,1edit1,...
容
1fontsize
fposition\[1102012030]);
$定义一个text控件,显示刻度“12”
20]);
$定义一个text控件,显示刻度“9”
&位置,距离左边110,距离底边20,宽度为120,高度为30bl=uicontrol(1parentffhf..
1style1z1text1,...
1string1,1121,...
1fontsize1f12,...
1position1,[15627520
b2=uicontrol(1parent1zhz..
1style1z1text1,...
1string1,191,...
1fontsize1z12,...
'position',©1752020]);
b3=uicontrol(1parent1rhz...%定义一个text控件,显示刻度"6”
1style1,1text\...
1string1,161z...
1fontsize1z12,...
'position',[156752020]);
b4=uicontrol(1parentfzhz...&定义一个text控件,显示刻度"3”
1style1,1text1z...
1string1,131,...
1fontsize
'position',[2601752020]);
sl=[0:
pi/1000:
2*pi];
hl=plot(cos(si)fsin(si)z1black1z1linewidth1z1.5);
匕绘制表盘的外圆
title(*时钟添加标题
time=datestr(now);&得到当前时间
set(elz1string1.time(1:
11));
匕当前时间的1:
11位是日期,把日期值给el
sital=pi/2-str2num(time(19:
20))*pi/30;$秒针转过的角度
sita2=pi/2-str2num(time(16:
17))*pi/30+sital/60;
匕分针转过的角度
sita3=pi/2-str2num(time(13:
14))*pi/6+sita2/12;
&时针转过的角度
wl=-pi/30;$设置秒针每秒转过的角度,分针走一个半圆需要30s
w2=-pi/1800;$设置分针每秒转过的角度
w3=-pi/108000;%设置时针每秒转过的角度
pausetime=l;
axisoff;axisequal
holdon
plot(0,0,1or1);
&设置刻度
forn=pi*2:
-pi/30:
pi/30
$绘制表盘,绘制分钟的刻度
al=0.95*cos(n):
0・05*cos(n)/2:
cos(n);b1=0.95*sin(n):
0.05*sin(n)/2:
sin(n);
plot(al,bl.1r-1);
end
forn=pi*2:
-pi/6:
pi/30土绘制表盘,绘制小时的刻度
al=0.9*cos(n):
0.l*cos(n)/2:
cos(n);bl=0.9*sin(n):
0・l*sin(n)/2:
sin(n);
plot(al,bl.1r-1);
end
匕时钟指针
while1
xl=0:
0・75*cos(sital)/2:
0.75*cos(sital);yl=0:
0.75*sin(sita
x2=0:
0・6*cos(sita2)/2:
0.6*cos(sita2);y2=0:
0.6*sin(sita2)/
x3=0:
0・45★cos(sita3)/2:
0・45*cos(sita3);y3=0:
0.45*sin(sita
hpl=plot(xl,ylz1r-1,1linewidth1z1.5);hp2=plot(x2zy2,'b-1,1linewidth1,2);
hp3=plot(x3,y3z1g-1,1linewidth1,3.5);
pause(pausetime);delete(hpl);
delete(hp2);
delete(hp3);
end
holdoff
程序运行结果如下
QFigure1:
匕京时间卜匸|回
结束语
本文通过MATLAB编写时钟程序,对MATLAB有了进一步的认识和了解,体会到了MATLAB软件的应用广泛和强大。
为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全而的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
参考文献
[1]时红霞,刘钧,舒云星•基于MATLAB的大学数学实验[J];洛阳工业髙等专科学校学报;2006年04期
[2]施晓红,周佳.精通GUI图形界而编程[M].北京:
北京大学出版社,2003
[3]孙鹏,高金縫,张涛.利用MATLAB实时处理GPS数据[J],东海海洋.2004,22
(1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 课程设计 时钟