EDA365电子论坛网

标题: MATLAB源程序代码分享:MATLAB创建无限循环的GIF动图 [打印本页]

作者: House    时间: 2020-3-18 09:44
标题: MATLAB源程序代码分享:MATLAB创建无限循环的GIF动图
/ V& e. K7 E: q+ P4 q
MATLAB源程序代码分享:MATLAB创建无限循环的GIF动图8 n: ^+ v6 N3 f; A/ i, r
%% 定义三维曲面网格点的横坐标 & 纵坐标
5 W, i0 y- H* B# ]! Aclear;clc;close all
1 O7 D5 _' r/ X# e: I5 O$ ]- c[x,y]=meshgrid(-8:0.1:8);
& Y7 K( k5 h0 g: k
* W3 y; L+ ?) s0 z4 ~%% 设定 k 为变量, 绘制在不同 k 值下的三维曲面图, 依次保存到 gif 动图里
  E- L& ?' E' U9 d- ?# c, g3 ~for k=1:10 7 u4 |: o( G( `$ b
    f=@(x,y)(sin(sqrt((11-k)*(x.^2+y.^2)))./sqrt((11-k)*(x.^2+y.^2)+eps));   % 曲面函数
3 Q8 Z' B; p1 C, Z    z=f(x,y);          % 计算 (x, y) 所对应的 z 坐标值% z: @( e. Z% J0 j2 B+ G8 Z$ b$ y
    surf(x,y,z)        % 绘制三维曲面- a' B4 d$ [) e+ c: C% f
    shading interp     % 设定三维曲面的显示效果
( c" z8 y& `& G8 |/ ?  j9 j) a    pause(0.1)
: z2 t9 c, L9 k8 Z& m    M=getframe(gcf);        % 捕捉当前绘图窗口, 作为动图的一帧图像/ ?& f' A6 Q' Y% S9 C( l% N$ Z4 |; a
    if k==1                 % 判断是否为首帧图像
2 z3 v* O7 {. G7 H; X        [I,map]=rgb2ind(M.cdata,256);     % 将 RGB 图像转换为索引图像, S" b: D% W6 G: g
        imwrite(I,map,'out.gif','DelayTime',0.1,'LoopCount',Inf)        % 创建 gif 动图, 写入首帧图像, 设定动图无限循环, 延时时间为 0.1 秒8 Q/ v; ]3 {( h& n1 p" N, P
    else; z- f+ k: ~7 b. k1 K
        [I,map]=rgb2ind(M.cdata,256);     % 将 RGB 图像转换为索引图像
+ a1 M* f" m3 w* u6 Q/ G. `        imwrite(I,map,'out.gif','WriteMode','append','DelayTime',0.1)   % 添加到 gif 图像, 设定延时时间为 0.1 秒3 d6 E  M6 g7 m' `+ F$ Q8 C
    end 2 L, M. i* x% F4 q* T! E) H+ B
end
: ?1 R  S5 {7 G* B: y+ g9 I
作者: wu68aq    时间: 2020-3-19 18:21
MATLAB创建无限循环的GIF动图。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2