话不多说,直接上干货
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148hfig=figure('visible','off'); set(hfig,'NumberTitle','off'); set(hfig,'name','My Clock'); set(hfig,'MenuBar','none'); set(hfig,'color',[0.5 0.7 0.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) hold on plot(x2,y2,'b','linewidth',3.5) fill(0.4*cos(A),0.4*sin(A),'r'); axis off axis([-10 10 -10 10]) axis equal set(gca,'position',[0.13 0.05 0.775 0.815]) title(date,'fontsize',18) 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.3 0.8 0.9]) h=text(xk,yk,num2str(k),'fontsize',16,'color',... [0.9 0.3 0.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([0 xh2 xh3 xh4 0],[0 yh2 yh3 yh4 0],[0.6 0.5 0.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([0 xm2 xm3 xm4 0],[0 ym2 ym3 ym4 0],[0.6 0.5 0.3]); % 计算秒针位置 ts=-(ti(6))/60*2*pi+pi/2; hs=plot([0 7*cos(ts)],[0 7*sin(ts)],... 'color',[0.6 0.5 0.3],'linewidth',3); set(gcf,'doublebuffer','on'); k=1; while k<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',[0 xh2 xh3 xh4 0],'YData',[0 yh2 yh3 yh4 0]) % 计算分针位置 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.09) end %% 时钟2:(第二个程序) clf;shg; h=figure('menubar','none',... 'color','white',... 'position',[200 200 320 360],... 'name','CLOCK'); e1=uicontrol('parent',h,... %定义一个edit控件,用于存储日期 'style','edit',... %该控件的类型为edit,可以编辑其内容 'fontsize',12,... %字体大小为12 'position',[110 20 120 30]); %位置,距离左边110,距离底边20,宽度为120,高度为30 b1=uicontrol('parent',h,... %定义一个text控件,显示刻度“12” 'style','text',... 'string','12',... 'fontsize',12,... 'position',[156 275 20 20]); b2=uicontrol('parent',h,... %定义一个text控件,显示刻度“9” 'style','text',... 'string','9',... 'fontsize',12,... 'position',[60 175 20 20]); b3=uicontrol('parent',h,... %定义一个text控件,显示刻度“6” 'style','text',... 'string','6',... 'fontsize',12,... 'position',[156 75 20 20]); b4=uicontrol('parent',h,... %定义一个text控件,显示刻度“3” 'style','text',... 'string','3',... 'fontsize',12,... 'position',[260 175 20 20]); 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; axis off;axis equal hold on plot(0,0,'or'); %设置刻度 for n=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 for n=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 %时钟指针 while 1 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 hold off
最后
以上就是冷静啤酒最近收集整理的关于用matlab绘制一个时钟的全部内容,更多相关用matlab绘制一个时钟内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复