|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
9 m1 h; |) G7 }5 \# F" Z0 [8 U
MATLAB源程序代码分享:MATLAB创建无限循环的GIF动图
3 g1 F+ E; L' h) q, ^( j%% 定义三维曲面网格点的横坐标 & 纵坐标$ {( N# L+ u" _( L5 i- D6 _5 e2 g
clear;clc;close all
" j5 o2 N5 |* M* \7 b+ l8 Y; t[x,y]=meshgrid(-8:0.1:8);: H8 w" W5 V+ F8 d* b
4 ^/ }" w% B- N- Y7 C
%% 设定 k 为变量, 绘制在不同 k 值下的三维曲面图, 依次保存到 gif 动图里
9 f" M2 d: p5 J' _3 Kfor k=1:10
! p) y" D0 U( G f=@(x,y)(sin(sqrt((11-k)*(x.^2+y.^2)))./sqrt((11-k)*(x.^2+y.^2)+eps)); % 曲面函数, K/ s# \: Q; Q7 p9 }
z=f(x,y); % 计算 (x, y) 所对应的 z 坐标值
1 N( U0 F& R7 E* Q s suRF(x,y,z) % 绘制三维曲面
' o1 l1 h- l4 I I8 c shading interp % 设定三维曲面的显示效果
6 ^2 ` F2 Y0 ]: t3 i" E' X pause(0.1)4 I$ ?; s4 K/ m
M=getframe(gcf); % 捕捉当前绘图窗口, 作为动图的一帧图像4 g9 M+ A, S5 ^6 G! `0 j
if k==1 % 判断是否为首帧图像
, h0 @, u) F9 W" f" ~# M8 K [I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像! i% J$ f# {3 k! \
imwrite(I,map,'out.gif','DelayTime',0.1,'LoopCount',Inf) % 创建 gif 动图, 写入首帧图像, 设定动图无限循环, 延时时间为 0.1 秒
, m1 s1 E. M0 k' w5 b1 X/ W else" W# L p3 |8 l
[I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像
1 i% @& U+ c( Q& h0 A4 @ imwrite(I,map,'out.gif','WriteMode','append','DelayTime',0.1) % 添加到 gif 图像, 设定延时时间为 0.1 秒" c0 k$ b/ H/ Z4 V' U% X# U+ p
end % f: s/ x' C1 J7 p2 D
end
: d0 r; C' M4 G: G
|
|