matlab制作雪花动画
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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