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# ]! A
clear;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
out.gif
(273.99 KB, 下载次数: 6)
下载附件
保存到相册
2020-3-18 09:44 上传
作者:
wu68aq
时间:
2020-3-19 18:21
MATLAB创建无限循环的GIF动图。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2