各种matlab时钟程序.docx
- 文档编号:3633782
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:14
- 大小:19.19KB
各种matlab时钟程序.docx
《各种matlab时钟程序.docx》由会员分享,可在线阅读,更多相关《各种matlab时钟程序.docx(14页珍藏版)》请在冰豆网上搜索。
各种matlab时钟程序
%%%收藏的各种matlab时钟程序:
(超级强大)
提示:
如果把此程序变成.exe格式会不会更好玩,有兴趣可以试下,我是没搞出来。
。
。
时钟程序1:
%functionclock1
hfig=figure('visible','off');
set(hfig,'NumberTitle','off');
set(hfig,'name','MyClock');
set(hfig,'MenuBar','none');
set(hfig,'color',[0.50.70.3]);
set(hfig,'visible','on');
A=linspace(0,6.3,1000);
x1=8*cos(A);
y1=8*sin(A);
x2=7*cos(A);
y2=7*sin(A);
plot(x1,y1,'b','linewidth',1.4)
holdon
plot(x2,y2,'b','linewidth',3.5)
fill(0.4*cos(A),0.4*sin(A),'r');
axisoff
axis([-1010-1010])
axisequal
set(gca,'position',[0.130.050.7750.815])
title(date,'fontsize',18)
fork=1:
12;
xk=9*cos(-2*pi/12*k+pi/2);
yk=9*sin(-2*pi/12*k+pi/2);
plot([xk/9*8xk/9*7],[yk/9*8yk/9*7],'color',[0.30.80.9])
h=text(xk,yk,num2str(k),'fontsize',16,'color',...
[0.90.30.8],'HorizontalAlignment','center');
end
%计算时针位置
ti=clock;
th=-(ti(4)+ti(5)/60+ti(6)/3600)/12*2*pi+pi/2;
xh3=4.0*cos(th);
yh3=4.0*sin(th);
xh2=xh3/2+0.5*cos(th-pi/2);
yh2=yh3/2+0.5*sin(th-pi/2);
xh4=xh3/2-0.5*cos(th-pi/2);
yh4=yh3/2-0.5*sin(th-pi/2);
hh=fill([0xh2xh3xh40],[0yh2yh3yh40],[0.60.50.3]);
%计算分针位置
tm=-(ti(5)+ti(6)/60)/60*2*pi+pi/2;
xm3=6.0*cos(tm);
ym3=6.0*sin(tm);
xm2=xm3/2+0.5*cos(tm-pi/2);
ym2=ym3/2+0.5*sin(tm-pi/2);
xm4=xm3/2-0.5*cos(tm-pi/2);
ym4=ym3/2-0.5*sin(tm-pi/2);
hm=fill([0xm2xm3xm40],[0ym2ym3ym40],[0.60.50.3]);
%计算秒针位置
ts=-(ti(6))/60*2*pi+pi/2;
hs=plot([07*cos(ts)],[07*sin(ts)],...
'color',[0.60.50.3],'linewidth',3);
set(gcf,'doublebuffer','on');
k=1;
whilek<6;
ti=clock;
%计算时针位置
th=-(ti(4)+ti(5)/60+ti(6)/3600)/12*2*pi+pi/2;
xh3=4.0*cos(th);
yh3=4.0*sin(th);
xh2=xh3/2+0.5*cos(th-pi/2);
yh2=yh3/2+0.5*sin(th-pi/2);
xh4=xh3/2-0.5*cos(th-pi/2);
yh4=yh3/2-0.5*sin(th-pi/2);
set(hh,'XData',[0xh2xh3xh40],'YData',[0yh2yh3yh40])
%计算分针位置
tm=-(ti(5)+ti(6)/60)/60*2*pi+pi/2;
xm3=6.0*cos(tm);
ym3=6.0*sin(tm);
xm2=xm3/2+0.5*cos(tm-pi/2);
ym2=ym3/2+0.5*sin(tm-pi/2);
xm4=xm3/2-0.5*cos(tm-pi/2);
ym4=ym3/2-0.5*sin(tm-pi/2);
set(hm,'XData',[0xm2xm3xm40],'YData',[0ym2ym3ym40])
%计算秒针位置
ts=-(ti(6))/60*2*pi+pi/2;
set(hs,'XData',[07*cos(ts)],'YData',[07*sin(ts)])
drawnow;
pause(0.09)
end
时钟程序2:
%functionclock2
%clf;shg;
h=figure('menubar','none',...
'color','white',...
'position',[200200320360],...
'name','CLOCK');
e1=uicontrol('parent',h,...%定义一个edit控件,用于存储日期
'style','edit',...%该控件的类型为edit,可以编辑其内容
'fontsize',12,...%字体大小为12
'position',[1102012030]);%位置,距离左边110,距离底边20,宽度为120,高度为30
b1=uicontrol('parent',h,...%定义一个text控件,显示刻度“12”
'style','text',...
'string','12',...
'fontsize',12,...
'position',[1562752020]);
b2=uicontrol('parent',h,...%定义一个text控件,显示刻度“9”
'style','text',...
'string','9',...
'fontsize',12,...
'position',[601752020]);
b3=uicontrol('parent',h,...%定义一个text控件,显示刻度“6”
'style','text',...
'string','6',...
'fontsize',12,...
'position',[156752020]);
b4=uicontrol('parent',h,...%定义一个text控件,显示刻度“3”
'style','text',...
'string','3',...
'fontsize',12,...
'position',[2601752020]);
s1=[0:
pi/1000:
2*pi];
hl=plot(cos(s1),sin(s1),'b-');%绘制表盘的外圆
time=datestr(now);%得到当前时间
set(e1,'string',time(1:
11));%当前时间的1:
11位是日期,把日期值给el
sita1=pi/2-str2num(time(19:
20))*pi/30;%秒针转过的角度
sita2=pi/2-str2num(time(16:
17))*pi/30+sita1/60;%分针转过的角度
sita3=pi/2-str2num(time(13:
14))*pi/6+sita2/12;%时针转过的角度
w1=-pi/30;%设置秒针每秒转过的角度,分针走一个半圆需要30s
w2=-pi/1800;%设置分针每秒转过的角度
w3=-pi/108000;%设置时针每秒转过的角度
pausetime=1;
axisoff;axisequal
holdon
plot(0,0,'or');
%设置刻度
forn=pi*2:
-pi/30:
pi/30%绘制表盘,绘制分钟的刻度
a1=0.95*cos(n):
0.05*cos(n)/2:
cos(n);b1=0.95*sin(n):
0.05*sin(n)/2:
sin(n);
plot(a1,b1,'r-');
end
forn=pi*2:
-pi/6:
pi/30%绘制表盘,绘制小时的刻度
a1=0.9*cos(n):
0.1*cos(n)/2:
cos(n);b1=0.9*sin(n):
0.1*sin(n)/2:
sin(n);
plot(a1,b1,'r-');
end
%时钟指针
while1
x1=0:
0.75*cos(sita1)/2:
0.75*cos(sita1);y1=0:
0.75*sin(sita1)/2:
0.75*sin(sita1);%根据秒针的位置绘制分针
x2=0:
0.6*cos(sita2)/2:
0.6*cos(sita2);y2=0:
0.6*sin(sita2)/2:
0.6*sin(sita2);%根据分针的位置绘制分针
x3=0:
0.45*cos(sita3)/2:
0.45*cos(sita3);y3=0:
0.45*sin(sita3)/2:
0.45*sin(sita3);%根据时针的位置绘制分针
hp1=plot(x1,y1,'b-');
hp2=plot(x2,y2,'b-','linewidth',2);
hp3=plot(x3,y3,'g-','linewidth',2);
sita1=sita1+w1*pausetime;%计算一秒以后秒针的角度位置
sita2=sita2+w2*pausetime;%计算一秒以后分针的角度位置
sita3=sita3+w3*pausetime;%计算一秒以后时针的角度位置
pause(pausetime);
delete(hp1);
delete(hp2);
delete(hp3);
end
holdoff
时钟程序3:
%functionclock3
try
closeall
hfig=figure('NumberTitle','off','name','ClockAnimationDemo--matlabfan','MenuBar','none');
theta=linspace(0,6.3,1000);
x1=8*cos(theta);y1=8*sin(theta);
plot(x1,y1,'b','linewidth',1.4)%绘制外表盘
holdon
axisequal
x2=7*cos(theta);y2=7*sin(theta);
plot(x2,y2,'y','linewidth',3.5)%绘制内表盘
fill(0.4*cos(theta),0.4*sin(theta),'r');%绘制指针转轴
axisoff
axis([-1010-1010])
set(gca,'position',[[0.130.050.7750.815]])
title(date,'fontsize',18)
fork=1:
12;
xk=9*cos(-2*pi/12*k+pi/2);
yk=9*sin(-2*pi/12*k+pi/2);
plot([xk/9*8xk/9*7],[yk/9*8yk/9*7],'color',[0.30.80.9]);
text(xk,yk,num2str(k),'fontsize',16,'color',[0.90.30.8],'HorizontalAlignment','center');%表盘时刻标度
end
%计算时针位置
ti=clock;
th=-(ti(4)+ti(5)/60+ti(6)/3600)/12*2*pi+pi/2;
xh3=4.0*cos(th);
yh3=4.0*sin(th);
xh2=xh3/2+0.5*cos(th-pi/2);
yh2=yh3/2+0.5*sin(th-pi/2);
xh4=xh3/2-0.5*cos(th-pi/2);
yh4=yh3/2-0.5*sin(th-pi/2);
hh=fill([0xh2xh3xh40],[0yh2yh3yh40],[0.60.50.3]);
%计算分针位置
tm=-(ti(5)+ti(6)/60)/60*2*pi+pi/2;
xm3=6.0*cos(tm);
ym3=6.0*sin(tm);
xm2=xm3/2+0.5*cos(tm-pi/2);
ym2=ym3/2+0.5*sin(tm-pi/2);
xm4=xm3/2-0.5*cos(tm-pi/2);
ym4=ym3/2-0.5*sin(tm-pi/2);
hm=fill([0xm2xm3xm40],[0ym2ym3ym40],[0.60.50.3]);
%计算秒针位置
ts=-(ti(6))/60*2*pi+pi/2;
hs=plot([07*cos(ts)],[07*sin(ts)],'color','w','linewidth',2);
set(gcf,'doublebuffer','on');
while1;
ti=clock;%每次读取系统时间,并进行运算
%计算时针位置
th=-(ti(4)+ti(5)/60+ti(6)/3600)/12*2*pi+pi/2;
xh3=4.0*cos(th);
yh3=4.0*sin(th);
xh2=xh3/2+0.5*cos(th-pi/2);
yh2=yh3/2+0.5*sin(th-pi/2);
xh4=xh3/2-0.5*cos(th-pi/2);
yh4=yh3/2-0.5*sin(th-pi/2);
set(hh,'XData',[0xh2xh3xh40],'YData',[0yh2yh3yh40])
%计算分针位置
tm=-(ti(5)+ti(6)/60)/60*2*pi+pi/2;
xm3=6.0*cos(tm);
ym3=6.0*sin(tm);
xm2=xm3/2+0.5*cos(tm-pi/2);
ym2=ym3/2+0.5*sin(tm-pi/2);
xm4=xm3/2-0.5*cos(tm-pi/2);
ym4=ym3/2-0.5*sin(tm-pi/2);
set(hm,'XData',[0xm2xm3xm40],'YData',[0ym2ym3ym40])
%计算秒针位置
ts=-(ti(6))/60*2*pi+pi/2;
set(hs,'XData',[07*cos(ts)],'YData',[07*sin(ts)])
drawnow;
pause(0.09)
end
catch
return
end
时钟程序4:
%functionclock4
h0=figure('menubar','none',...
'NumberTitle','off',...
'position',[200150300150],...
'name','简易时钟');%创建窗口
set(0,'DefaultUicontrolBackgroundColor',get(h0,'color'))%设置控件默认背景色
set(0,'DefaultUicontrolUnits','points')%设置控件默认字体单位
set(0,'DefaultUicontrolFontsize',12)%设置控件默认字体大小
now=floor(clock);%获取当前时刻
e1=uicontrol('parent',h0,...%创建方框显示年份数据
'enable','inactive',...
'BackgroundColor','w',...
'style','edit',...
'horizontal','right',...
'position',[20803020],...
'string',num2str(now
(1)));
t1=uicontrol('parent',h0,...%显示【年】
'style','text',...
'string','年',...
'fontsize',14,...
'position',[55802020]);
e2=uicontrol('parent',h0,...%创建方框显示月份数据
'enable','inactive',...
'BackgroundColor','w',...
'style','edit',...
'horizontal','right',...
'position',[80803020],...
'string',num2str(now
(2)));
t2=uicontrol('parent',h0,...%显示【月】
'style','text',...
'string','月',...
'fontsize',14,...
'position',[115802020]);
e3=uicontrol('parent',h0,...%创建方框显示日份数据
'enable','inactive',...
'BackgroundColor','w',...
'style','edit',...
'horizontal','right',...
'position',[140803020],...
'string',num2str(now(3)));
t3=uicontrol('parent',h0,...%显示【日】
'units','points',...
'tag','t3',...
'style','text',...
'string','日',...
'fontsize',14,...
'position',[175802020]);
e4=uicontrol('parent',h0,...%显示时、分、秒
'enable','inactive',...
'BackgroundColor','w',...
'style','edit',...
'horizontal','right',...
'position',[40308020],...
'string',[num2str(now(4))':
'num2str(now(5))':
'num2str(now(6))]);
b1=uicontrol('parent',h0,...%显示【关闭】按钮
'string','关闭',...
'position',[150305020],...
'callback',[...
'k=1;,',...
'close']);
k=0;%循环标志
whileishandle(h0)%获取时间,用于时间刷新
now1=floor(clock);
set(e1,'string',num2str(now1
(1)));
set(e2,'string',num2str(now1
(2)));
set(e3,'string',num2str(now1(3)));
set(e4,'string',[num2str(now1(4))':
'num2str(now1(5))':
'num2str(now1(6))]);
pause
(1)%循环周期
ifk==1%跳出循环
break
end
end
时钟程序5:
%functionclock5
forj=1:
30%循环30秒后停止
R=100;%设置背景圆的半径R=100
axis([-100100-100100]);%设定坐标轴
cs=linspace(0,2*pi,100);
A=linspace(0,6.3,1000);
x1=cos(cs);
y1=sin(cs);
fill(R*x1,R*y1,'w');%填充背景色为白色
holdon;
axis('off');%隐藏坐标轴
plot(R*x1,R*y1,'r','linewidth',2.0);%画外侧圆,R=100
plot((R-10)*cos(A),(R-10)*sin(A),'r','linewidth',1.0)%画内侧圆,R=100-5=95
axis('equal');%将圆变成正圆
title('王玺的电子表');%添加自己的标题
%画数字与刻度
fori=1:
60%循环变量控制,画60个刻度
if(mod(i,5)==0)%mod取余数,在整除5的时候刻度线长一些
l=R-10;%设置长刻度为10
else
l=R-5;%设置短刻度为5
end
%画从R到l的直线R与l间隔越大线越长
%a=linspace(x1,x2,n)指从x1,x2建立一个n元素的向量并赋给a
x=linspace(R*cos(-i*pi/30+pi/2),l*cos(-i*pi/30+pi/2),60);
y=linspace(R*sin(-i*pi/30+pi/2),l*sin(-i*pi/30+pi/2),60);
plot(x,y,'r');%将刻度颜色设为红色
%给表盘添加数字
if(mod(i,5)==0)
s=fix(i/5);%fix取小于当前的整数值如fix(3.5)结果为3
s=num2str(s);%整数转化成字符串(text函数只可以显示字符串)
if(i>30)
r=3;
end;
r=-3;
text(x(60)+r,y(60)+r,s,'fontsize',20,'color',[000]);%在刚才划线的最后一个点(x(60),y(60))加上r的位置即(x(60)+r,y(60)+r)输出数字
end
end
%画指针
sz=clock;
%将clock赋给sz(时钟的首字母);clock指调用当前系统时间;clock为有六个元素的向量:
%用clock(6)可显示当前秒钟数;用clock(5)可显示当前分钟数;用clock(4)可显示当前小时数;
%用clock(3)可显示当前日数;用clock
(2)可显示当前月数;用clock
(1)可显示当前年数;
%**************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 各种 matlab 时钟 程序