matlab动画-流星雨
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clc;%清屏
ysy=figure('name','一起去看流星雨');%标题
axis([0 80 0 80]);
hold on;
axis off;
set(ysy,'color','k');%设置背景为黑色
%%%%%以下是画月亮
t6=-pi/3:0.01:0;
x6=60+10*cos(t6);
y6=60+10*sin(t6);
plot(x6,y6,'color',[1 1 0]);%画第一条弧线
t7=-pi*2/3:0.01:pi/3;
x7=67.5+5*cos(t7);
y7=60-sqrt(3)*5/2+5*sin(t7);
plot(x7,y7,'color',[1 1 0]);%画第二条弧线
fill([x6,x7],[y6,y7],'y');%将月亮填充为黄色
%%%%%以下为画五角星
line([30,33,34,35,38,36,38,34,30,32,30],[60,60,62.5,60,60,59,56.5,58,56.5,59,60],...
'color','b','MarkerEdgeColor','b','linewidth',2);%画五角星
fill([30,33,34,35,38,36,38,34,30,32,30],...
[60,60,62.5,60,60,59,56.5,58,56.5,59,60],'b');%填充五角星
%%%%%以下是画人
%%%%%%%男
t8=0:0.01:2*pi;
x8=40+2*cos(t8);
y8=24+4*sin(t8);
plot(x8,y8,'b','linewidth',2);%%%%%画头
line([40,40.8],[26,26],'color','y');%左眼
line([41.4,41.8],[26,26],'color','y');%右眼
line(41.3,24.1,'color','y','linestyle','.','erasemode','xor','markersize',5);%鼻
line([41,41.8],[22,22],'color','y');%嘴
line([39.8,39.8,38.3,38.3,41.7,41.7,40.8,40.8,39.8],[20,19,18.7,0,0.5,18.7,19,20,20],...
'color','b','linewidth',2);%躯干
line([41.7,41.7],[13.4,16.2],'color','k','linewidth',2)%清除被手臂挡住的线
line([40.7,40.7],[0.35,8.7],'color','b','linewidth',2);%用一条线将矩形分开,就是腿line([40,41,44,45,41,40],[18.2,16,18.8,17.8,13.1,15.3],'color','b','linewidth',2);%%胳膊
%%%%%%%%女
t9=0:0.01:2*pi;
x9=50+2*cos(t8);
y9=22+4*sin(t8);
plot(x9,y9,'color','m','linewidth',2);%%%%%画头
line([50,49.2],[24,24],'color','y');%左眼
line([48.2,48.6],[24,24],'color','y');%右眼
line(48.7,22.1,'color','y','linestyle','.','erasemode','xor','markersize',5);%鼻
line([48.2,49.2],[20,20],'color','y');%嘴
line([49.8,49.8,48.3,48.3,46.3,48.3,48.3,51.7,51.7,53.7,51.7,51.7,50.8,50.8],...
[18,17,16.7,8,4,4,0.5,0,4,4,8,16.7,17,18],'color','m','linewidth',2);%躯干
line([48.3,48.3],[14.1,16.1],'color','k','linewidth',2)%清除挡住的线
line([49.3,49.3],[0.35,4],'color','m','linewidth',2);%腿
line([50,47.8,45.8,45,47.8,50],[16.4,16,18.4,17.8,14,14.4],'color','m','linewidth',2);%%胳膊b1=text(20,70,'哇塞!流星雨来了!','fontsize',16,'color','r');%输入字
pause(1);%停顿一秒
delete(b1);%删除b1
b2=text(22,68,'听说...','fontsize',16,'color','r');
pause(1);
delete(b2);
b3=text(24,66,'在流星雨下许的愿,一定会实现!','fontsize',16,'color','r');
pause(2);
delete(b3);
b4=text(54,28,'愿我们相伴一生!','fontsize',16,'color','r');
b5=text(10,30,'愿执子之手,','fontsize',16,'color','r');
b6=text(12,22,'与子偕老!','fontsize',16,'color','r');
a1=line(5,70,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星1
a2=line(5,65,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星2
a3=line(5,60,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星3
a4=line(5,55,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星4
a5=line(5,50,'color','w','linestyle','.','erasemode','xor','markersize',10);%流星5
x1=5;%流星1的初始横坐标
y1=70;;%流星1的初始纵坐标
x2=5;
y2=65;
x3=5;
y3=60;
x4=5;
y4=55;
x5=5;
y5=50;
dt1=0.4375;%递增量
dt2=0.1;%递增量
t1=x1;
t2=x2;
t3=x3;
t4=x4;
t5=x5;
r1=1;%画心形中的小圆半径
r2=4;%画心形中的大圆半径
c1=39;%小圆1的初始横坐标
d1=33;%小圆1的初始纵坐标
c2=41;%小圆2的初始横坐标
d2=33;%小圆2的初始纵坐标
c3=38;%大圆1的初始横坐标
d3=33;%大圆1的初始纵坐标
c4=42;%大圆2的初始横坐标
d4=33;%大圆2的初始纵坐标
f1=c1+10;%第二个心形中小圆1的横坐标f2=c2+10;%第二个心形中小圆2的横坐标f3=c3+10;%第二个心形中大圆1的横坐标f4=c4+10;%第二个心形中大圆2的横坐标%第二个心形中的纵坐标跟第一个共用
t=0.09;%递增量
t10=0:0.01:pi;%设置弧度
t11=-pi*11/30:0.01:0;
t12=-pi:0.01:-pi*19/30;
%流星雨开始及心形移动
while t5<80 %循环开始
t1=t1+dt1;
t2=t2+dt1;
t3=t3+dt1;
t4=t4+dt1;
t5=t5+dt1;
x1=t1;
x2=t2;
x3=t3;
x4=t4;
x5=t5;
y1=y1+dt2;
y2=y2+dt2;
y3=y3+dt2;
y4=y4+dt2;
y5=y5+dt2;
set(a1,'xdata',[x1,x1],'ydata',[y1,y1]);%流星1的移动set(a2,'xdata',[x2,x2],'ydata',[y2,y2]);%流星2的移动set(a3,'xdata',[x3,x3],'ydata',[y3,y3]);%流星3的移动set(a4,'xdata',[x4,x4],'ydata',[y4,y4]);%流星4的移动set(a5,'xdata',[x5,x5],'ydata',[y5,y5]);%流星5的移动
c1=c1+t/3.2;
c2=c2+t/3.2;
c3=c3+t/3.2;
c4=c4+t/3.2;
f1=f1-t/3.2;
f2=f2-t/3.2;
f3=f3-t/3.2;
f4=f4-t/3.2;
d1=d1+t;
d2=d2+t;
d3=d3+t;
d4=d4+t;
c5=c1+r1*cos(t10);
d5=d1+r1*sin(t10);
f5=f1+r1*cos(t10);
c6=c2+r1*cos(t10);
d6=d2+r1*sin(t10);
f6=f2+r1*cos(t10);
c7=c3+r2*cos(t11);
d7=d3+r2*sin(t11);
f7=f3+r2*cos(t11);
c8=c4+r2*cos(t12);
d8=d4+r2*sin(t12);
f8=f4+r2*cos(t12);
plot(c5,d5,'r');%小圆弧1
plot(c6,d6,'r');%小圆弧2
plot(c7,d7,'r');%大圆弧1
plot(c8,d8,'r');%大圆弧2
plot(f5,d5,'r');%第二个心形小圆弧1
plot(f6,d6,'r');%小圆弧2
plot(f7,d7,'r');%大圆弧1
plot(f8,d8,'r');%大圆弧2
pause(0.01);%停顿0.01秒
drawnow;
fill([c1-1.1,c2+1.1,c2+1.1,c1-1.1],[d1-4,d1-4,d2+1,d2+1],'k');%除去显示出来的心形1,以便移动
fill([f1-1.1,f2+1.1,f2+1.1,f1-1.1],[d1-4,d1-4,d2+1,d2+1],'k');%除去显示出来的心形2,以便移动end;%循环结束
plot(c5,d5,'r');
plot(c6,d6,'r');
plot(c7,d7,'r');
plot(c8,d8,'r');%显示最后的心形。