matlab制作雪花动画

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%% 设置部分

%***************设置背景****************************%

A=imread('bg.jpg');%背景图像

h=figure;

imshow(A); %显示背景图像

axes

axis([0 1 0 1]); %设置坐标范围,并隐藏坐标

axis off;

set(gcf,'color','k'); %设置背景颜色为黑色

%设置显示的雪花数目

N=20;

handles=zeros(1,N);

x=rand(2,N);

% fontsize(大) step 步长

fontsize=floor(rand(1,N)*17+32); %设置字号,32-48之间

new_handles_N=0;

%% 绘图部分

for i=1:N

handles(i)=text(x(1,i),x(2,i),'*','fontsize',fontsize(i),'color','w'); %handles 存储每一个“雪花”的句柄

end

while 1

if ~ishandle(h)

return

end

for i=1:N

temp=get(handles(i),'position');

step=get(handles(i),'fontsize')/48*0.05; % 不同大小的雪花,速度不同。

if temp(2)<0 %判断是否飘出坐标范围

new_handles_N=new_handles_N+1;

new_handles(new_handles_N)= copyobj(handles(i),gca);

if new_handles_N==500 %扫雪了~\(≧▽≦)/~啦啦啦

delete(new_handles);

new_handles_N=0;

end

temp(1)=rand(1);

temp(2)=1;

else

temp(1)=temp(1)+rand(1)*0.1-0.05;

temp(2)=temp(2)-step; %速度

end

set(handles(i),'position',temp,'rotation',get(handles(i),'rotation')+5);

end

pause(.2)

end

相关文档
最新文档