資源簡介
matlab時鐘萬年歷(附word說明文檔):
程序主要是一個時鐘軟件,包括一個時鐘表和一個日歷。程序自動運行時,顯示系統當前日期和時間,日期和時間可以由用戶自行更改。
程序由一個主程序myclcok及兩個子函數rili和ck。主程序myclcok主要建立主窗口的菜單及相關的功能編輯。rili函數用于建立日歷界面,ck函數用于建立時鐘界面。在一開始運行時便顯示系統當前日期和時間,用戶可以根據需要做更改日期和時間。更改日期和時間步驟一樣。

代碼片段和文件信息
function?f=ck(ti)
global?aa?hs?hm?hh
set(gca‘position‘[[0?0?0.5?0.9]])?
A=linspace(06.31000);?
x1=8*cos(A);?
y1=8*sin(A);?
x2=7*cos(A);?
y2=7*sin(A);?
plot(x1y1‘b‘‘linewidth‘1.4)?
hold?on?
plot(x2y2‘b‘‘linewidth‘3.5)?
fill(0.4*cos(A)0.4*sin(A)‘r‘);?
axis?off?
axis([-10?10?-10?10])?
axis?equal?
for?k=1:12;?
xk=9*cos(-2*pi/12*k+pi/2);
yk=9*sin(-2*pi/12*k+pi/2);
plot([xk/9*8?xk/9*7][yk/9*8?yk/9*7]‘color‘[0.8?0.1?0.5])?
h=text(xk-0.5yknum2str(k)‘fontsize‘13‘color‘[0.9?0.3?0.8]);?
end?
%?計算時針位置?
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([0?xh2?xh3?xh4?0][0?yh2?yh3?yh4?0][0.6?0.5?0.3]);?
set(hh‘EraseMode‘‘Xor‘);
%?計算分針位置?
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([0?xm2?xm3?xm4?0][0?ym2?ym3?ym4?0][0.6?0.5?0.3]);?
set(hm‘EraseMode‘‘Xor‘);
%?計算秒針位置?
ts=-(ti(6))/60*2*pi+pi/2;?
hs=line([0?7*cos(ts)][0?7*sin(ts)]‘color‘...
????[0.6?0.5?0.3]‘linewidth‘3);?
set(hs‘EraseMode‘‘Xor‘);
set(gcf‘doublebuffer‘‘on‘);?
while?1
????if?aa==0
?????????break
????end
???%?計算時針位置?
???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‘[0?xh2?xh3?xh4?0]‘YData‘[0?yh2?yh3?yh4?0])?
???plot(00‘*‘)
???%?計算分針位置?
???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‘[0?xm2?xm3?xm4?0]‘YData‘[0?ym2?ym3?ym4?0])?
???%?計算秒針位置?
???ts=-(ti(6))/60*2*pi+pi/2;?
???set(hs‘XData‘[0?7*cos(ts)]‘YData‘[0?7*sin(ts)])?
???drawnow;
???pause(0.05)?;
???%時間更新
???ti(6)=ti(6)+0.15;
???if?ti(6)>60
???????ti(6)=0;
???????ti(5)=ti(5)+1;
???end
???if?ti(5)>60
???????ti(5)=0;
???????ti(4)=ti(4)+1;
???end
???if?ti(4)>12
???????ti(4)=0;
???end
end?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1968??2008-06-03?22:41??matlab時鐘萬年歷\ck.asv
?????文件????????2367??2008-06-09?16:38??matlab時鐘萬年歷\ck.m
?????文件???????93696??2008-06-15?10:00??matlab時鐘萬年歷\matlab時鐘萬年歷說明文檔.doc
?????文件????????1525??2008-06-10?15:04??matlab時鐘萬年歷\myclock.m
?????文件????????1746??2008-06-03?23:21??matlab時鐘萬年歷\rili.asv
?????文件????????1566??2008-06-05?23:46??matlab時鐘萬年歷\rili.m
評論
共有 條評論