Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-08-25, 20:43   #1
pslpsl
普通会员
 
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20
pslpsl 是一个将要出名的人pslpsl 是一个将要出名的人
酷 [分享][原创]动画震荡的小球(含MATLAB源码和注释)

代码:
 
function bai
%震荡的小球动画演示
%EDIT BY PSL@CSU
%QQ:547423688
%Email:[email protected]
clear
clc
savemov=1;%是否生成avi文件,1为是,0为否
if(savemov==1)
mov=avifile('bai.avi');
end
t=0:pi/18:4*pi;
n=length(t);
y=cos(t);      %震荡轨迹,可改变函数
line1=plot(t,y,'b');  %绘制曲线
axis([0 4*pi -1.5 1.5]);
hold on;
title('震荡的小球动画演示(By pslpsl)');
%下面利用线绘制小球,并定义线的颜色,线形大小和擦除方式
%小球对象的句柄存放在变量h中,后面利用这个句柄对小球控制
h=line('color',[0 0.5 0.5],'linestyle','.','markersize',50,'erasemode','xor');
%最关键的一点把擦除方式设为'xor',这样才能实现好的动画效果
%下面为脚本文件
i=1;
k=1;%控制转向
count=1;
j=2;%震荡次数 j/2次
line2=plot(t(1),y(1),'r');%存放震荡线
while count<j*n-j+1
delete(line2);%或cla %删除震荡线
temp=rand(1)-0.5;%随机震荡
set(h,'xdata',t(i),'ydata',y(i)+temp);
line2=plot([t(i),t(i)],[y(i),y(i)+temp],'r');
pause(0.01);
%drawnow;%刷新
if(savemov==1)
f=getframe(gcf);
mov=addframe(mov,f);
end
i=i+k;
count=count+1;
%碰到反射点转向
if(i==1|i==n)
    k=-k;
end
end
hold off;
if(savemov==1)
mov=close(mov);
end
%EDIT BY PSL@CSU
%QQ:547423688
%Email:[email protected]
动画效果如下:

附件 1035
上传的附件
文件类型: rar bai.avi.rar (331.8 KB, 46 次查看)
pslpsl 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
急 急 急 如何用用matylab实现混合智能算法? ren MATLAB论坛 0 2008-11-15 20:31
请大家帮忙看看这个程序问题出在哪? likochen MATLAB论坛 0 2008-11-13 02:38
[求助]各位达人 beardgh MATLAB论坛 0 2008-09-19 16:34
[求助]请各位大哥帮帮忙 warlock8238 MATLAB论坛 3 2008-09-14 15:31
[求助]DFT求两路正弦信号相差 mayllen MATLAB论坛 0 2008-07-07 21:52


所有时间均为北京时间。现在的时间是 11:19


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.