如何在Matlab中制作这个3D图的动画?

时间:2013-05-07 18:48:26

标签: matlab 3d plot mesh matlab-figure

我目前的代码:

a=7
f=10
T=1/f;
v=40
wl=v/f;
x1=1;
x2=30
step=0.01

t=x1:step:x2;
x=x1:step:x2;
y=a*sind(2*pi*f*(t+(x*T)/wl)); 
h=plot3(x,y,t);
set(h,'EraseMode','xor','MarkerSize',20)
xlabel('displacement(m)');
ylabel('amplitude(m)');
title('Wave Animation');
for t=x1:step:x2
drawnow
y=a*sind(2*pi*f*(t+(x*T)/wl)); 
set(h,'YData',y)
pause(0.01)
end

我将它转换为3D网格图,但在动画和Matlab崩溃中渲染需要很长时间。

a=7
f=10
T=1/f;
v=40
wl=v/f;
x1=1;
x2=30
step=0.01

t=x1:step:x2;
x=x1:step:x2;
[x,t] = meshgrid(x,t);
y     = a*sind(2*pi*f*(t+(x*T)/wl)); 
mesh(y)

制作动画的最佳方式是什么,使它看起来与我制作3D之前的相似?

1 个答案:

答案 0 :(得分:0)

如果您无法实时制作动画,则可以使用getframemovie。您可以使用getframe以您可以生成它们的速率捕获帧,然后使用movie以更快的帧速率重放帧。有关简单示例,请参阅getframe链接。