数学建模社区-数学中国
标题:
【MATLAB动画教程三】
[打印本页]
作者:
士心之约
时间:
2015-9-16 14:33
标题:
【MATLAB动画教程三】
function f=anim_ball(K,ki)
%
%演示红色小球沿一条封闭旋螺线运动的实时动画
% 仅演示实时动画的调用格式为 anim_ball(K)
% 既演示实时动画又拍摄照片的调用格式为 f=anim_ball(K,ki)
% K 红球运动的循环数(不小于 1 )
% ki 指定拍摄照片的瞬间,取 1 到 1034 间的任意整数
% f 存储拍摄的照片数据,可用 image(f.cdata) 观察照片
% 产生封闭的运动轨线
%
%
%by dynamic
%all rights reserved by http://www.4math.cn
%2007.10.26
%
t1=(0:1000)/1000*10*pi;
x1=cos(t1);y1=sin(t1);z1=-t1;
t2=(0:10)/10;
x2=x1(end)*(1-t2);y2=y1(end)*(1-t2);z2=z1(end)*ones(size(x2));
t3=t2;
z3=(1-t3)*z1(end);x3=zeros(size(z3));y3=x3;
t4=t2;
x4=t4;y4=zeros(size(x4));z4=y4;
x=[x1 x2 x3 x4];y=[y1 y2 y3 y4];z=[z1 z2 z3 z4];
h=figure('numbertitle','off','name','擦除动画演示(运动的小球)——Matlabsky')
plot3(x,y,z,'b')
axis off
%绘制红点
%擦除模式设为xor
h=line('Color',[1 0 0],'Marker','.','MarkerSize',40,'EraseMode','xor');
n=length(x);
i=1;j=1;
%循环改变坐标,表现为小球运动
while 1
if ~ishandle(h),return,end
set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i));
drawnow;
pause(0.0005) %这里设置小球运动速度
i=i+1;
if nargin==2 & nargout==1
if(i==ki&j==1);f=getframe(gcf);end %获取指定的帧,保存到f中
end
if i>n
%判断是否运行了一周,是将i设置为1,并将运行周数j加1
i=1;j=j+1;
%判断是否到指定的运行周数,是,退出
if j>K;break;end
end
end
复制代码
作者:
风靡全球
时间:
2015-9-16 18:07
加油 一定要努力哦
作者:
风靡全球
时间:
2015-9-16 18:07
加油 一定要努力哦
作者:
风靡全球
时间:
2015-9-16 18:07
加油 一定要努力哦
作者:
风靡全球
时间:
2015-9-16 18:07
加油 一定要努力哦
作者:
风靡全球
时间:
2015-9-16 18:08
加油 一定要努力哦
作者:
风靡全球
时间:
2015-9-16 18:08
加油 一定要努力哦
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5