|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
: i: o5 ` P, O' o) f1 r0 f
MATLAB源程序代码分享:MATLAB创建无限循环的GIF动图( B9 E0 \/ ?" ` N2 L
%% 定义三维曲面网格点的横坐标 & 纵坐标- D% Q, l5 s# O! Y, A
clear;clc;close all9 H: p. ]1 O$ v( z0 h
[x,y]=meshgrid(-8:0.1:8);
5 i) `& `4 V ?5 L0 ^6 v5 n6 ~, n8 G9 @& ?
2 d2 f( I8 V' U; C6 L5 u/ m. J6 D m/ u$ i%% 设定 k 为变量, 绘制在不同 k 值下的三维曲面图, 依次保存到 gif 动图里2 D* t6 g* |+ V( m# k% J
for k=1:10 ; w' {: U+ p6 K0 D7 e3 e4 C
f=@(x,y)(sin(sqrt((11-k)*(x.^2+y.^2)))./sqrt((11-k)*(x.^2+y.^2)+eps)); % 曲面函数
8 v0 |8 S$ z! F& }1 a6 l! u D2 t! s z=f(x,y); % 计算 (x, y) 所对应的 z 坐标值
8 l) d! p1 v, H. f2 b, V, q) I suRF(x,y,z) % 绘制三维曲面4 d3 `8 x) B( @9 Q* [
shading interp % 设定三维曲面的显示效果
0 B' \7 q( T; Q4 ^* u pause(0.1)
, t/ D y+ f5 Z4 i8 l M=getframe(gcf); % 捕捉当前绘图窗口, 作为动图的一帧图像
9 B7 f" D: j# G# ~+ E if k==1 % 判断是否为首帧图像
$ H0 [: T' C# c [I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像- V) x% E7 [' X, n6 `4 F* A
imwrite(I,map,'out.gif','DelayTime',0.1,'LoopCount',Inf) % 创建 gif 动图, 写入首帧图像, 设定动图无限循环, 延时时间为 0.1 秒
% S: g7 c, A, M" O8 x5 H else
/ q4 r5 l7 v$ G9 z ~' J [I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像& S/ {; C* O" J4 }% U
imwrite(I,map,'out.gif','WriteMode','append','DelayTime',0.1) % 添加到 gif 图像, 设定延时时间为 0.1 秒
& N% ]0 N# S4 Y end 3 W- I' S+ a4 x% U Q
end, B9 B; |3 D2 T
|
|