MATLAB制作漂亮时钟word版本.docx

上传人:b****6 文档编号:7711800 上传时间:2023-01-25 格式:DOCX 页数:17 大小:90.29KB
下载 相关 举报
MATLAB制作漂亮时钟word版本.docx_第1页
第1页 / 共17页
MATLAB制作漂亮时钟word版本.docx_第2页
第2页 / 共17页
MATLAB制作漂亮时钟word版本.docx_第3页
第3页 / 共17页
MATLAB制作漂亮时钟word版本.docx_第4页
第4页 / 共17页
MATLAB制作漂亮时钟word版本.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

MATLAB制作漂亮时钟word版本.docx

《MATLAB制作漂亮时钟word版本.docx》由会员分享,可在线阅读,更多相关《MATLAB制作漂亮时钟word版本.docx(17页珍藏版)》请在冰豆网上搜索。

MATLAB制作漂亮时钟word版本.docx

MATLAB制作漂亮时钟word版本

MATLAB制作漂亮手表

一、问题的提出

随着科技的日新月异,人们的生活节奏变得越来越快,而准确的把我时间也变得越来越重要,几乎人人都会携带可以知道时间的东西,比如手表,手机,怀表,于是在此提出问题,如何通过matlab数字化模拟日常生活中所用的手表的转动?

二、理论分析

完整的时钟界面有时针,分针,秒针以及刻度等组成,而要用matlab模拟出这些部件,则只需由外至内,一部部的模拟出表面的图形,以及它的运转法则。

三、实验步骤

1.了解手表的表盘中由哪些东西构成,将需要通过matlab作出来的部件记下。

2.观察手表的秒针,分针,以及时针的运转规律,构想出通过matlab来实现指针的转动方法。

3.着手编写matlab程序来实现这一过程。

4.完成程序,检验程序的可行性,并完善,使作出来的手表表盘尽可能的美化。

5.完成实验报告。

四、程序实现

1.画一个大的圆圈,表示手表的最外层的圈圈,通过plot画圆来实现,x,y用参数方程确定。

2.通过line画直线的方式,画出表盘中得分针和秒针的小的刻度,一共60个。

3.同样的方式,画出时针的大的刻度,一共12个,并在正上方的刻度下表上12.

4.运用clock指令读取系统时间,并将其作为初始时间。

5.采用同样的方式分别做出第一、第二、第三个小圆盘,具体程序就不在此给出了。

6.分别做出大表盘以及小表盘中得指针,采用fill指令分别实现时针,分针和秒针。

在此列举大表盘中得时针做出方法。

7.加入以数字形式显示时间的指令,具体实现方法如下

显示初始时间:

8.设计指针的运转,当秒针每转动一秒时,相应的改变大表盘中秒针,分针,以及时针的位置,以及小圆圈中得指针位置。

数据的改变:

大圆圈的指针数据:

小圆圈中指针的数据:

图像中指针的位置改变:

9.当指针转动一圈时,相应的数据应如何变化:

10.数字显示也许相应的改变:

11.为使秒针的运动符合时间的规律,采用pause指令:

五、实验结果及结果分析

运行程序,得到结果:

六、程序及其说明

clear;clf;

%%%%%作出大的表盘%%%%%%

set(gcf,'name','钟表','color','white');

theta=linspace(0,2*pi,10000);r=10;

x=r.*cos(theta);

y=r.*sin(theta);

shg;

plot(x,y);axis([-1212-1512]);

axisequal;

holdon;

axis('off');

text(-0.6,9,'\fontsize{20}12');

theta0=[];xa=[];xb=[];ya=[];yb=[];

fori=1:

60%画出60个刻度

theta0(i)=i*pi/30;

xa=(r-0.3)*cos(theta0(i));

xb=(r-0.3)*sin(theta0(i));

ya=r*cos(theta0(i));

yb=r*sin(theta0(i));

line([xa;ya],[xb;yb]);

end

fori=1:

12%画出12个时针的刻度,为了美观,采取个别不画的原则

ifi==1||i==3||i==5||i==9

continue

end

theta0(i)=i*pi/6;

xa=(r-1.5)*cos(theta0(i));

xb=(r-1.5)*sin(theta0(i));

ya=(r-0.36)*cos(theta0(i));

yb=(r-0.36)*sin(theta0(i));

line([xa;ya],[xb;yb],'linewidth',3);

end

fori=1:

12%在60个小刻度的基础上对时针的刻度加粗

theta0(i)=i*pi/6;

xa=(r-0.3)*cos(theta0(i));

xb=(r-0.3)*sin(theta0(i));

ya=r*cos(theta0(i));

yb=r*sin(theta0(i));

line([xa;ya],[xb;yb],'linewidth',3);

end

t=clock;

h0=t(4);%设定初始时间

m0=t(5);

s0=floor(t(6));

thetas1=(15-s0)*pi/30;%计算3个小表盘中指针的初始角度

thetam1=(15-m0)*pi/30-s0*pi/1800;

thetah1=(6-h0)*pi/12-m0*pi/720-s0*pi/43200;

%%%%%%%作第一个小表盘%%%%%%%%%

r1_0=6;theta1_0=pi/6;

r1=3;theta1=linspace(0,2*pi,10000);

x1_0=r1_0*cos(theta1_0);

y1_0=r1_0*sin(theta1_0);

x1=x1_0+r1.*cos(theta1);

y1=y1_0+r1.*sin(theta1);

plot(x1,y1);

theta_10=[];x1a=[];x1b=[];y1a=[];y1b=[];

fori=1:

12%画出第一个小表盘的刻度

theta_10(i)=i*pi/6;

x1a=x1_0+(r1-0.3)*cos(theta_10(i));

x1b=y1_0+(r1-0.3)*sin(theta_10(i));

y1a=x1_0+r1*cos(theta_10(i));

y1b=y1_0+r1*sin(theta_10(i));

line([x1a;y1a],[x1b;y1b],'linewidth',2);

end

text(x1_0+r1-0.7,y1_0,'6');%部分刻度给予数字显示

text(x1_0-r1+0.1,y1_0,'18');

text(x1_0-0.4,y1_0-r1+0.5,'12');

text(x1_0-0.4,y1_0+r1-0.5,'24');

h1x1=x1_0+0.4*cos(thetah1-pi);h1y1=y1_0+0.4*sin(thetah1-pi);%作出第一个小表盘的指针

h1x2=x1_0+0.2*cos(thetah1+pi/2);h1y2=y1_0+0.2*sin(thetah1+pi/2);

h1x3=x1_0+1.8*cos(thetah1);h1y3=y1_0+1.8*sin(thetah1);

h1x4=x1_0+0.2*cos(thetah1-pi/2);h1y4=y1_0+0.2*sin(thetah1-pi/2);

h1=fill([h1x1,h1x2,h1x3,h1x4,h1x1],[h1y1,h1y2,h1y3,h1y4,h1y1],'g');

plot(x1_0,y1_0,'w.','markersize',6);

%%%%%%%%作第二个小表盘%%%%%%%%

r2_0=6;theta2_0=5*pi/6;

r2=3;theta2=linspace(0,2*pi,10000);

x2_0=r2_0*cos(theta2_0);

y2_0=r2_0*sin(theta2_0);

x2=x2_0+r2.*cos(theta2);

y2=y2_0+r2.*sin(theta2);

plot(x2,y2);

theta_20=[];x2a=[];x2b=[];y2a=[];y2b=[];

fori=1:

60%画出第二个小表盘的刻度

theta_20(i)=i*pi/30;

x2a=x2_0+(r2-0.5)*cos(theta_20(i));

x2b=y2_0+(r2-0.5)*sin(theta_20(i));

y2a=x2_0+r2*cos(theta_20(i));

y2b=y2_0+r2*sin(theta_20(i));

line([x2a;y2a],[x2b;y2b],'linewidth',1);

end

text(x2_0-0.3,y2_0+r2-0.8,'60');%部分刻度给予数字显示

text(x2_0+1.4,y2_0-1.2,'20');

text(x2_0-2,y2_0-1.2,'40');

s1x1=x2_0+0.4*cos(thetas1-pi);s1y1=y2_0+0.4*sin(thetas1-pi);%作出第二个小表盘的指针

s1x2=x2_0+0.2*cos(thetas1+pi/2);s1y2=y1_0+0.2*sin(thetas1+pi/2);

s1x3=x2_0+1.8*cos(thetas1);s1y3=y2_0+1.8*sin(thetas1);

s1x4=x2_0+0.2*cos(thetas1-pi/2);s1y4=y2_0+0.2*sin(thetas1-pi/2);

s1=fill([s1x1,s1x2,s1x3,s1x4,s1x1],[s1y1,s1y2,s1y3,s1y4,s1y1],'g');

plot(x2_0,y2_0,'w.','markersize',7);

%%%%%%添加中间小圆圈,美化表盘%%%%%%

fori=1:

60%画出12个时针的刻度,为了美观,采取个别不画的原则

if(i>=1&&i<=10)||(i>=20&&i<=30)||(i>=40&&i<=50)||i==60

continue

end

theta0(i)=i*pi/30;

xa=(r-4.8)*cos(theta0(i));

xb=(r-4.8)*sin(theta0(i));

ya=(r-4.5)*cos(theta0(i));

yb=(r-4.5)*sin(theta0(i));

ifi==15||i==35||i==55

line([xa;ya],[xb;yb],'linewidth',2);

continue

end

line([xa;ya],[xb;yb],'linewidth',1);

end

%%%%%%作出第三个小表盘%%%%%%%%

r3_0=6;theta3_0=3*pi/2;

r3=3;theta3=linspace(0,2*pi,10000);

x3_0=r3_0*cos(theta3_0);

y3_0=r3_0*sin(theta3_0);

x3=x3_0+r3.*cos(theta3);

y3=y3_0+r3.*sin(theta3);

plot(x3,y3);

theta_30=[];x3a=[];x3b=[];y3a=[];y3b=[];

fori=1:

60%画出第三个小表盘的刻度

theta_30(i)=i*pi/30;

x3a=x3_0+(r3-0.2)*cos(theta_30(i));

x3b=y3_0+(r3-0.2)*sin(theta_30(i));

y3a=x3_0+r3*cos(theta_30(i));

y3b=y3_0+r3*sin(theta_30(i));

ifi==14||i==15||i==16||i==30||i==44||i==45||i==46||i==60

continue

end

line([x3a;y3a],[x3b;y3b],'linewidth',1);

end

fori=1:

12%整分的刻度给予加粗

ifi==3||i==6||i==9||i==12

continue

end

theta_30(i)=i*pi/6;

x3a=x3_0+(r3-0.5)*cos(theta_30(i));

x3b=y3_0+(r3-0.5)*sin(theta_30(i));

y3a=x3_0+r3*cos(theta_30(i));

y3b=y3_0+r3*sin(theta_30(i));

line([x3a;y3a],[x3b;y3b],'linewidth',1);

end

text(x3_0-0.3,y3_0+r3-0.3,'60','fontsize',10);%部分刻度给予数字显示

text(x3_0-0.3,y3_0-r3+0.3,'30','fontsize',10);

text(x3_0+2.4,y3_0,'15','fontsize',8);

text(x3_0-2.9,y3_0,'45','fontsize',8);

m1x1=x3_0+0.4*cos(thetam1-pi);m1y1=y3_0+0.4*sin(thetam1-pi);%作出第三个小表盘的指针

m1x2=x3_0+0.2*cos(thetam1+pi/2);m1y2=y3_0+0.2*sin(thetam1+pi/2);

m1x3=x3_0+1.8*cos(thetam1);m1y3=y3_0+1.8*sin(thetam1);

m1x4=x3_0+0.2*cos(thetam1-pi/2);m1y4=y3_0+0.2*sin(thetam1-pi/2);

m1=fill([m1x1,m1x2,m1x3,m1x4,m1x1],[m1y1,m1y2,m1y3,m1y4,m1y1],'g');

plot(x3_0,y3_0,'w.','markersize',7);

%%%%%%作出大表盘的指针%%%%%%%

thetas=(15-s0)*pi/30;

thetam=(15-m0)*pi/30-s0*pi/1800;

thetah=(3-h0)*pi/6-m0*pi/360-s0*pi/21600;

hx1=(r-7)*cos(thetah+pi/25);

hy1=(r-7)*sin(thetah+pi/25);

hx2=(r-4)*cos(thetah);

hy2=(r-4)*sin(thetah);

hx3=(r-7)*cos(thetah-pi/25);

hy3=(r-7)*sin(thetah-pi/25);

h=fill([0,hx1,hx2,hx3,0],[0,hy1,hy2,hy3,0],'g');%作出大表盘的时针

plot(0,0,'g.','markersize',40);

mx1=(r-6)*cos(thetam+pi/30);

my1=(r-6)*sin(thetam+pi/30);

mx2=(r-1.5)*cos(thetam);

my2=(r-1.5)*sin(thetam);

mx3=(r-6)*cos(thetam-pi/30);

my3=(r-6)*sin(thetam-pi/30);

m=fill([0,mx1,mx2,mx3,0],[0,my1,my2,my3,0],'r');%作出大表盘的分针

plot(0,0,'r.','markersize',30);

sx1=(r-8)*cos(thetas+pi);

sy1=(r-8)*sin(thetas+pi);

sx2=(r-0.3)*cos(thetas);

sy2=(r-0.3)*sin(thetas);

s=line([sx1;sx2],[sy1;sy2],'color','m','linewidth',3);%作出大表盘的秒针

plot(0,0,'m.','markersize',20);

i=1;j=1;k=1;

time=text(0,-12,[num2str(h0),':

',num2str(m0),':

',num2str(s0)]);%以数字格式显示初始时间

while1

ifi>60

i=1;

end

thetas1=thetas1-pi/30;%时间走动时,变化相应的表盘的摆针的角度

thetam1=thetam1-pi/1800;

thetah1=thetah1-pi/43200;

sx1=(r-8)*cos(thetas-i*pi/30+pi);

sy1=(r-8)*sin(thetas-i*pi/30+pi);

sx2=(r-0.3)*cos(thetas-i*pi/30);

sy2=(r-0.3)*sin(thetas-i*pi/30);

mx1=(r-6)*cos(thetam-j*pi/1800+pi/30);

my1=(r-6)*sin(thetam-j*pi/1800+pi/30);

mx2=(r-1.5)*cos(thetam-j*pi/1800);

my2=(r-1.5)*sin(thetam-j*pi/1800);

mx3=(r-6)*cos(thetam-j*pi/1800-pi/30);

my3=(r-6)*sin(thetam-j*pi/1800-pi/30);

hx1=(r-7)*cos(thetah-k*pi/21600+pi/25);

hy1=(r-7)*sin(thetah-k*pi/21600+pi/25);

hx2=(r-4)*cos(thetah-k*pi/21600);

hy2=(r-4)*sin(thetah-k*pi/21600);

hx3=(r-7)*cos(thetah-k*pi/21600-pi/25);

hy3=(r-7)*sin(thetah-k*pi/21600-pi/25);

s1x1=x2_0+0.4*cos(thetas1-pi);s1y1=y2_0+0.4*sin(thetas1-pi);

s1x2=x2_0+0.2*cos(thetas1+pi/2);s1y2=y1_0+0.2*sin(thetas1+pi/2);

s1x3=x2_0+1.8*cos(thetas1);s1y3=y2_0+1.8*sin(thetas1);

s1x4=x2_0+0.2*cos(thetas1-pi/2);s1y4=y2_0+0.2*sin(thetas1-pi/2);

m1x1=x3_0+0.4*cos(thetam1-pi);m1y1=y3_0+0.4*sin(thetam1-pi);

m1x2=x3_0+0.2*cos(thetam1+pi/2);m1y2=y3_0+0.2*sin(thetam1+pi/2);

m1x3=x3_0+1.8*cos(thetam1);m1y3=y3_0+1.8*sin(thetam1);

m1x4=x3_0+0.2*cos(thetam1-pi/2);m1y4=y3_0+0.2*sin(thetam1-pi/2);

h1x1=x1_0+0.4*cos(thetah1-pi);h1y1=y1_0+0.4*sin(thetah1-pi);

h1x2=x1_0+0.2*cos(thetah1+pi/2);h1y2=y1_0+0.2*sin(thetah1+pi/2);

h1x3=x1_0+1.8*cos(thetah1);h1y3=y1_0+1.8*sin(thetah1);

h1x4=x1_0+0.2*cos(thetah1-pi/2);h1y4=y1_0+0.2*sin(thetah1-pi/2);

set(s,'xdata',[sx1;sx2],'ydata',[sy1;sy2]);%画出变化后的指针位置

set(m,'xdata',[0,mx1,mx2,mx3,0],'ydata',[0,my1,my2,my3,0]);

set(h,'xdata',[0,hx1,hx2,hx3,0],'ydata',[0,hy1,hy2,hy3,0]);

set(m1,'xdata',[m1x1,m1x2,m1x3,m1x4,m1x1],'ydata',[m1y1,m1y2,m1y3,m1y4,m1y1]);

set(s1,'xdata',[s1x1,s1x2,s1x3,s1x4,s1x1],'ydata',[s1y1,s1y2,s1y3,s1y4,s1y1]);

set(h1,'xdata',[h1x1,h1x2,h1x3,h1x4,h1x1],'ydata',[h1y1,h1y2,h1y3,h1y4,h1y1]);

i=i+1;k=k+1;j=j+1;

s0=s0+1;%计算当前时间

ifs0==60

s0=0;

m0=m0+1;

end

ifm0==60

m0=0;

h0=h0+1;

end

ifh0==24

h0=0;

end

delete(time);%删除句柄

ifs0<10&&m0<10&&h0<10%重新显示当前时间,判断时间的数字位数,选择是否在数字前面加0

营销环境信息收集索引time=text(-3,-12,['0',num2str(h0),':

0',num2str(m0),':

0',num2str(s0)],'fontsize',30,'Fontname','TimesNewRoman');

elseifs0<10&&m0<10&&h0>=10

time=text(-3,-12,[num2str(h0),':

0',num2str(m0),':

0',num2str(s0)],'fontsize',30,'Fontname','TimesNewRoman');

elseifs0<10&&m0>=10&&h0<10

加拿大beadworks公司就是根据年轻女性要充分展现自己个性的需求,将世界各地的珠类饰品汇集于“碧芝自制饰品店”内,由消费者自选、自组、自制,这样就能在每个消费者亲手制作、充分发挥她们的艺术想像力的基础上,创作出作品,达到展现个性的效果。

time=text(-3,-12,['0',num2str(h0),':

',num2str(m0),':

0',num2str(s0)],'fontsize',30,'Fontname','TimesNewRoman');

我们长期呆在校园里,对社会缺乏了解,在与生意合作伙伴应酬方面往往会遇上困难,更不用说商业上所需经历的一系列繁琐手续。

他们我们可能会在工商局、税务局等部门的手续中迷失方向。

对具体的市场开拓缺乏经验与相关的知识,缺乏从职业角度整合资源、实行管理的能力;elseifs0<10&&m0>=10&&h0>=10

(4)创新能力薄弱time=text(-3,-12,[num2str(h0),':

',num2str(m0),':

0',num2str(s0)],'fontsize',30,'Fontname','TimesNewRoman');

我们熟练的掌握计算机应用,我们可以在网上搜索一些流行因素,还可以把自己小店里的商品拿到网上去卖,为我们小店提供了多种经营方式。

elseifs0>=10&&m0<10&&h0<10

time=text(-3,-12,['0',num2str(h0),':

0',num2str(m0),':

',num2str(s0)],'fontsize',30,'Fontname','TimesNewRoman');

elseifs0>=10&&m0<10&&h0>=10

1、现代文化对大学生饰品消费的影响time=tex

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1