|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
$ [: C: V4 [- i3 }9 x$ k6 G" r% GMATLAB源程序代码分享:MATLAB创建无限循环的GIF动图8 d9 \# @( L [: ^" X5 O6 K
%% 定义三维曲面网格点的横坐标 & 纵坐标$ e: }; |' b2 v- X9 D. p
clear;clc;close all L+ m& \" N& E5 G9 d
[x,y]=meshgrid(-8:0.1:8);) \# [( }9 E2 Z% R; o8 z9 [0 M
+ `7 X2 d2 q+ L& `& i @( m%% 设定 k 为变量, 绘制在不同 k 值下的三维曲面图, 依次保存到 gif 动图里
+ |7 U% [: l B. p: M0 Pfor k=1:10 % y, E8 d* f' M0 ?. ]" J: x+ T
f=@(x,y)(sin(sqrt((11-k)*(x.^2+y.^2)))./sqrt((11-k)*(x.^2+y.^2)+eps)); % 曲面函数 ^; l0 X+ H/ T6 b1 P b/ G; e
z=f(x,y); % 计算 (x, y) 所对应的 z 坐标值' U- G* w9 m: J+ l1 F7 u
suRF(x,y,z) % 绘制三维曲面
r0 T5 M) f4 X0 T i7 g shading interp % 设定三维曲面的显示效果
) Y0 D, b9 k; Q! W0 M0 f" ]3 l4 i pause(0.1)
8 n( L. d2 [/ X" s% y M=getframe(gcf); % 捕捉当前绘图窗口, 作为动图的一帧图像( x6 Y: y- j. o0 m8 {
if k==1 % 判断是否为首帧图像) {, h) F* s+ Z: u% \( g
[I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像
& j! S8 k, I1 `" I8 K" u imwrite(I,map,'out.gif','DelayTime',0.1,'LoopCount',Inf) % 创建 gif 动图, 写入首帧图像, 设定动图无限循环, 延时时间为 0.1 秒* c; j9 Z( b# T7 W1 x" U
else* i0 c' w' F% }) s! g
[I,map]=rgb2ind(M.cdata,256); % 将 RGB 图像转换为索引图像
$ D! o z; j6 I# d1 y" D imwrite(I,map,'out.gif','WriteMode','append','DelayTime',0.1) % 添加到 gif 图像, 设定延时时间为 0.1 秒
0 z/ e8 w6 k @/ y' _ end # R0 V$ E- z7 A7 w
end
+ o6 S. z, W9 q7 i, Y
|
|