24小时热门版块排行榜    

CyRhmU.jpeg
查看: 610  |  回复: 1
当前主题已经存档。

anyuezhiji

银虫 (正式写手)

星空行者

[交流] 【原创】震荡的小球动画演示(matlab源码)已有1人参与

很简单的程序
以前在其他论坛发过

有兴趣的可以看下
引用回帖:
function bai
%震荡的小球动画演示
%EDIT BY PSL@CSU
%QQ:547423688
%Email:anyuezhiji@qq.com
clear
clc
savemov=0;%是否生成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
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:anyuezhiji@qq.com

回复此楼
暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

咸锦照

铁虫 (小有名气)

恩 看过
2楼2010-04-19 16:18:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 anyuezhiji 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见