繁体   English   中英

如何在Matlab中为3D图制作动画?

[英]How to animate this 3D plot in 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;
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之前的图像相似?

如果您不能实时设置动画效果,那么一个简单的替代方法是使用getframemovie 您可以使用getframe以任何可能的速率捕获帧,然后使用movie以更快的帧速率重放帧。 有关简单示例,请参见getframe链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM