第六章-动画效果

for循环+drawnow

x=linspace(0.1,0.9,100)

for it=1:100
    plot(x(it),0.3,'ro')
    axis([0,1,0,1])
    drawnow
end

保存动态图子程序

LoopCount选项:

0:动画播放一次

1:动画播放两次

inf:连续播放

makegif.m

function makegif(filename,index)
f=getframe(gcf)
im=frame2im(f)
[im,cm]=rgb2ind(im,256)
if index==1
    imwrite(im,cm,filename,'gif','Loopcount',Inf,'DelayTime',0.1)
else
    imwrite(im,cm,filename,'gif','WriteMode','append','DelayTime',0.1)
end
end

为了限制更新,以至于看不到效果,使用pause(0.1)暂停0.1s

my.gif:my是文件名,.gif:是文件格式

x=linspace(0.1,0.9,100)

for it=1:100
    plot(x(it),0.3,'ro')
    axis([0,1,0,1])
    makegif('my.gif',it)
    pause(0.1)
    drawnow
end

 

 

x=linspace(0.1,0.9,100)

for it=1:100
    plot([x(1),x(it)],[0.3,0.3],'r',...
        x(it),0.3,'ro')
    axis([0,1,0,1])
    makegif('my2.gif',it)
    pause(0.1)
    drawnow
end

 

t=linspace(0,1,100)
x=zeros(1,100)
y=zeros(1,100)

for it=1:100
    x(it)=cos(2*pi*t(it))
    y(it)=sin(2*pi*t(it))
end

for it=1:100
    plot(x(1:it),y(1:it),'r',...
        x(it),y(it),'o')

    axis(1.2*[-1,1,-1,1])
    axis square
    makegif('my3.gif',it)
    pause(0.1)
    drawnow
end

 

t=linspace(0,1,100)
x=zeros(1,100)
y=zeros(1,100)

for it=1:100
    x(it)=cos(2*pi*t(it))
    y(it)=sin(2*pi*t(it))
end

for it=1:100
    line([-1,1],[0,0])
    plot(x(1:it),y(1:it),'r',...                                绘制曲线
        x(it),y(it),'o',...                                           绘制点
        1.2*[-1,1],[0,0],'k',...                                  x轴
        [0,0],1.2*[-1,1],'k',...                                   y轴
        [0,x(it)],[0,y(it)],'k',...                     半径
        [0,x(it)],[0,0],'b',...
        [0,0],[y(it),0],'b',...
        [x(it) x(it)],[0,y(it)],':b',...
        [0,x(it)],[y(it),y(it)],':b')

    axis(1.2*[-1,1,-1,1])
    axis square
    makegif('my4.gif',it)
    pause(0.1)
    drawnow
end

 

x=linspace(0,3,200)
t=linspace(0,4,200)

for it=1:200
    y=sin(2*pi*x-2*pi*t(it))
    plot(x,y)
    xlabel('x')
    ylabel('y')
    title('traveling wave')
    makegif('my5.gif',it)
    pause(0.1)
    drawnow
end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一夕ξ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值