|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" v! ?9 h7 U1 F$ g, }$ |* V
MATLAB源程序代码分享:MATLAB创建无限循环的GIF动图
0 s3 X, A$ l" U8 ]9 t! o# V* K! l%% 定义三维曲面网格点的横坐标 & 纵坐标" `) j$ h; ?' n( f
clear;clc;close all
- Y( k5 s% @3 d% o6 ^+ r5 L; U0 t! d[x,y]=meshgrid(-8:0.1:8);: R5 B/ O" |" [- t
$ y' x. V4 F! z8 J: D0 x, M1 ?. u%% 设定 k 为变量, 绘制在不同 k 值下的三维曲面图, 依次保存到 gif 动图里
4 V" ~) a! b5 M& A+ `for k=1:10 / u; L9 O0 N5 o. d
f=@(x,y)(sin(sqrt((11-k)*(x.^2+y.^2)))./sqrt((11-k)*(x.^2+y.^2)+eps)); % 曲面函数
' g: a3 b, t! d7 Z z=f(x,y); % 计算 (x, y) 所对应的 z 坐标值
* k( |$ }0 f6 M( e suRF(x,y,z) % 绘制三维曲面
1 T. A. M1 G& i$ I shading interp % 设定三维曲面的显示效果1 ?! Z1 N1 u3 U9 h6 [
pause(0.1)
# O2 I) \3 j0 S7 B2 | M=getframe(gcf); % 捕捉当前绘图窗口, 作为动图的一帧图像# K) ~- `7 _0 A; D" `
if k==1 % 判断是否为首帧图像
- |7 p% S; ~% h; ?/ \ [I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像# B B7 x- y. ?
imwrite(I,map,'out.gif','DelayTime',0.1,'LoopCount',Inf) % 创建 gif 动图, 写入首帧图像, 设定动图无限循环, 延时时间为 0.1 秒% @7 U3 [$ Y; ?. x
else) v* k9 q% n. G& @6 V
[I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像
# a+ \+ O- ?8 A5 H imwrite(I,map,'out.gif','WriteMode','append','DelayTime',0.1) % 添加到 gif 图像, 设定延时时间为 0.1 秒
5 l M, |; W* Y& a5 @ end
( z/ z3 l& s8 |5 O* \end" c: `, M7 }) l9 z6 e5 d( {
|
|