MATLAB 动画的制作与保存

matlab有三种方法来创建动画:

①以质点运动轨迹的方式来创建动画

theta=0:0.001:2*pi;
%定义圆的半径
r=10;
%生成圆上各点的横纵坐标
x=r*cos(theta);
y=r*sin(theta);
comet(x,y);

生成的动画效果如下 (其中的某一步)

最终结果如下

 

comet(x,y) 显示 y 对 x 的彗星图。 

comet3与comet的用法相似;

在绘图过程中不断抓取一系列的图片并保存,然后再在后台连续播放这些图片,这种方法称为“影片模式”

使用该模式生成动画,需要以下两个步骤

a.调用getframe函数抓取界面并保存为图像

b.调用movie函数连续播放保存的图像

clc;clear;
figure(1);
x=0:pi/50:2*pi;
y=sin(x);
h=plot(x,y);
%保存坐标值,使得所有的帧都显示在同一个坐标轴中
axesValue=axis;
%创建动画
for ii=1:10
    %在坐标轴中绘制曲线
    for jj=1:length(x)*ii/10
        set(h,'xdata',x(1:jj),'ydata',y(1:jj),'color','r');
        axis(axesValue);
    end
    %抓取界面图像,保存到矩阵A
        A(ii)=getframe;
end
%连续播放矩阵A中的图像两次
movie(A,2);

 

 

③擦除模式

 使用擦除模式来生成动画需要以下步骤

a.产生一个图形对象,将其EraseMode属性设置为xor;

b.在循环中改变对象的坐标值(XData,YData,ZData属性值),重新绘制图形

每次循环都调用drawnow命令刷新界面

figure(1);
x=0:pi/50:2*pi;
y=sin(x);
plot(x,y);
%产生一个红点在曲线上移动
h=line(0,0,'color','r','marker','.','markersize',40,'erasemode','xor');
%取得坐标轴的取值范围
axesValue=axis;
%创建动画,在曲线上移动红点
for jj=1:length(x)
    set(h,'xdata',x(jj),'ydata',y(jj),'color','r');
    %设置坐标轴的范围,以使所有图形的大小相同
    axis(axesValue);
    pause(0.2);
    drawnow;
end

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值