保存为动态图原理:把一系列图片,按照一定时间间隔顺序保存,顺序播放即可。
animatedline:参数设置方法与plot相当,所不同的是可以动态删除添加数据点。
示例:以 y = s i n ( x ) y=sin(x) y=sin(x)为例
x = 0:0.1:2*pi;
y = sin(x);
axis([min(x) max(x) min(y) max(y)]);
line = animatedline('Color','r','LineWidth',3);
for i=1:length(x)addpoints(line,x(i),y(i));pause(0.1);drawnow;
end
其中
原理:按照 一定时间间隔来 顺序保存 当前MATLAB figure窗口图像。
由于figure窗口图片在变化,我们保存的就是一系列变化的图片序列,再按顺序播放形成动态图。
自编MATLAB 动图存储函数: MakeGif(filename,index)
function MakeGif(filename,index) f = getframe(gcf); imind = frame2im(f); [imind,cm] = rgb2ind(imind,256); if index==1 imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.001);else imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.001);end
end
x = 0:0.1:2*pi;
y = sin(x);
axis([min(x) max(x) min(y) max(y)]);
line = animatedline('Color','r','LineWidth',3);
for i=1:length(x)addpoints(line,x(i),y(i));MakeGif('my.Gif',i);pause(0.1);drawnow;
end
clc;clear all;
x=-2:0.003:2;
set(gcf,'position',[100,0,800,600],'color','w');
for i=1:110clf;if i <=100 || mod(i,2) ==0y = (x.^2).^(1/3)+(0.9*sqrt((4-x.^2))).*sin(i/10*pi*x);y(end)=NaN;patch(x,y,y,'EdgeColor','interp','MarkerFaceColor','flat','Linewidth',3);endset(gca,'xtick',[],'ytick',[],'ztick',[],'xcolor','w','ycolor','w','zcolor','w')color = [rand rand rand];title('爱你~宝宝','fontsize',25,'Color',color);xlim([-2 2]);ylim([-1.7 2.7]);colormap springMakeGif('my.Gif',i);
end
function MakeGif(filename,index) f = getframe(gcf); imind = frame2im(f); [imind,cm] = rgb2ind(imind,256); if index==1 imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.001);else imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.001);end
end
保存为动态图原理:把一系列图片,按照一定时间间隔顺序保存,顺序播放
本文发布于:2024-02-04 07:56:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170702470253710.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |