matlab_动画制作

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

点的简单动画%by dynamic

%2008.6.23

%

t=0:pi/1000:10*pi;

x=30*sin(t);

y=30*cos(t);

z=t;

plot3(x,y,z);

hold on

%axis equal

comet3(x,y,z,0.5)

%%

%by dynamic

%2008.6.13

%

vx = 100*cos(1/4*pi);

vy = 100*sin(1/4*pi);

t = 0:0.001:15;

x = vx*t;

y = vy*t-9.8*t.^2/2;

comet(x,y)

%%

%by dynamic

%2008.6.13

%

vx = 100*cos(1/4*pi);

vy = 100*sin(1/4*pi);

t = 0:0.001:15;

x = vx*t;

y = vy*t-9.8*t.^2/2;

comet(x,y)

%%

%一般的过程

%擦除重绘模式动画

%选择一个擦除模式

set(h,'erasemode',erasemode)%h是需要执行动画图像的句柄,一般都是由line或者plot创建%

%需要执行一些图形计算命令

%

%循环语句中更新坐标数据,一般使用for或者while

for i=1:n

%

%必要的MATLAB命令

%

set(h,'xdata',xdata,'ydta',ydata)%更新图像的坐标数据

drownnow%刷新屏幕

%

%其它Matlab语句

%

End

%%

%运动的小球

%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

%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

%绘制红点

h=line('Color',[1 0 0],'Marker','.','MarkerSize',40,'EraseMode','xor');%擦除模式设为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

%%

%挂摆横梁

%by dynamic

%2008.6.9

%

h=figure('numbertitle','on','name','擦除动画演

示(挂摆横梁)——Matlabsky');

%绘制横梁

plot([-0.2;0.2],[0;0],'-k','linewidth',20);

%画初始位置的单摆

g=0.98;%重力加速度,可以调节摆的摆速

l=1;%摆长

theta0=pi/4;%初始角度

x0=l*sin(theta0);%初始x坐标

y0=-l*cos(theta0);%初始y坐标

axis([-0.75,0.75,-1.25,0]);

axis off

%创建摆锤

head=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);%擦除模式为xor %创建摆杆

相关文档
最新文档