不想动手调程序的可以试试这个任意大小屏幕录制成gif图的软件。
MATLAB 用很多图片 生成gif动图
1、生成很多图
我这里画了cos曲线和一个圆, (x0,y0)是切点,x0取值t = linspace(0.1,0.9,10);
(xc,yc)是圆心。计算好之后,使用plot(xxxx1,y1,'r',xxxx2,y2,'b');%画出函数1和函数2的图形,然后saveas(gcf, num2str(count_num_single), 'jpg');保存这张图,图名生成的。x0有10个点,循环10次,这样就能得到10张图。
clc clear all pi=3.1415926; %目的就是根据切点画图 t = linspace(0.1,0.9,10); % 手定 count_num_single=1; w=1; % 改变胖瘦 for x0=t y0 = cos(w*x0+pi) ; % (x0,y0)是切点 根据函数公式和已经的x0得到y0 y0i=(-w) * sin(w*x0+pi);%导数 yc = -2.8; % (xc,yc)是圆心 最后要满足条件 -yc<R 才能让圆的最高点在第四象限 syms xc R % R是圆半径 xc是圆心的横坐标 % enqs变量就是2个方程式 就是联立1和2的式子 eqns = [(x0 - xc)^2 + (y0 - yc)^2 - R^2==0, (y0 - yc) / (x0 - xc) * y0i + 1==0]; vars = [xc R]; [xc, R] = solve(eqns, vars); xc=vpa(xc,4); R=vpa(R,4); xc=double(xc); R=double(R); xc=max(xc); R=max(R); %下面几句是画图形 xxxx1=linspace(-pi,2*pi,2000);%给出范围 xxxx2=linspace(xc-R,xc+R,2000);%给出范围 y1=cos(w*xxxx1+pi);%范围内的函数1 y2=sqrt(R^2-(xxxx2 - xc).^2)+yc;%范围内的函数2 plot(xxxx1,y1,'r',xxxx2,y2,'b');%画出函数1和函数2 grid on; axis equal; saveas(gcf, num2str(count_num_single), 'jpg'); count_num_single=count_num_single+1; end
2、生成gif图
刚才生成的图,读出来,写入到gif图,最终成动图。
num=count_num_single-1; for i=1:num str = strcat(num2str(i), '.jpg'); A=imread(str); [I,map]=rgb2ind(A,256); if(i==1) imwrite(I,map,'movefig.gif','DelayTime',0.1,'LoopCount',Inf) else imwrite(I,map,'movefig.gif','WriteMode','append','DelayTime',0.1) end end
效果图:
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!