MATLAB 用很多图片 生成gif动图

不想动手调程序的可以试试这个任意大小屏幕录制成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

效果图:
在这里插入图片描述

相关推荐

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:酷酷鲨 设计师:CSDN官方博客 返回首页

打赏作者

x1131230123

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值