查看avifile的帮助文档,有例子。
aviobj = avifile('exampleavi','compression','None');
t = linspace(0,25pi,40);
fact = 10sin(t);
fig=figure;
[x,y,z] = peaks;
for k=1:length(fact)
h = surf(x,y,fact(k)z);
axis([-3 3 -3 3 -80 80])
axis off
caxis([-90 90])
F = getframe(fig);
aviobj = addframe(aviobj,F);
end
close(fig);
aviobj = close(aviobj);
或者VideoWriter函数。
t = 0:pi/100:2pi;
y = exp(sin(t));
h = plot(t,y,'YDataSource','y');
for k = 1:001:10
y = exp(sin(tk));
refreshdata(h,'caller')
drawnow
end
,追问请加分!
在开始画图之前,你需要准备一些画图工具和材料。这些工具可以是纸张、铅笔、彩铅、水彩笔、油画颜料、画板和画笔等。你可以根据自己的喜好和技能选择适合自己的画图工具。
在准备工作完成后,你需要选择一个画面。可以是一幅美丽的风景、一朵花、一只动物或者是一个人物。如果你想画出浪漫的520表白图,那么可以选择一对情侣或者是一些代表爱情的图案。
三、构图
在准备工作完成后,你需要选择一个画面。可以是一幅美丽的风景、一朵花、一只动物或者是一个人物。如果你想画出浪漫的520表白图,那么可以选择一对情侣或者是一些代表爱情的图案。
在选择好画面后,你需要开始构图。构图是指将画面分为不同的部分,并在纸上进行勾勒。你可以用铅笔轻轻勾画出画面的轮廓,然后再根据需要加入一些细节和阴影。
每个axes对应一个句柄,你要在指定的axes上画动态图像,需要把这个axes作为父对象,假设这个axes的句柄为h1。 你要画的这个曲线指定为h2
则先这么写
h2=animatedline('parent',h1,'color','r');
而后就是你的数据了,用addpoint写
addpoints(h2,x(i),y(i)) ;
这样就把曲线画到了指定的axes上
楼主所说的“不成功”是什么概念?
据我在多个版本实测,生成文件是没问题的,但播放文件时,后面的一些帧会出现混乱。
应该是格式兼容性问题:
在最新版的MATLAB 2014a读入生成的文件,然后逐帧显示,图像是对的;但在2008a中读入文件时会出错。
把生成的文件用Ulead GIF Animator 505打开,可以查看各帧的图像都是正常的,另存一下就好了。
我想不出更好的解决办法。代码看上去没什么问题,图像的数据其实也都保存下来了,如果说有问题,就是因为MATLAB对多帧GIF格式的支持还不够好。
猜测可能与各帧的colormap不同有关,但没有更深入的分析。
楼主试试用streamparticles画动画。
load wind
lims = [10064 11667 1725 2875 -002 686];
[x,y,z,u,v,w] = subvolume(x,y,z,u,v,w,lims);
cav = curl(x,y,z,u,v,w);
wind_speed = sqrt(u^2 + v^2 + w^2);
[sx sy sz] = meshgrid(110,20:5:30,1:5);
verts = stream3(x,y,z,u,v,w,sx,sy,sz,5);
h = streamribbon(verts,x,y,z,cav,wind_speed,2);
set(h,'FaceColor','r',
'EdgeColor',[7 7 7],
'AmbientStrength',6)
axis(volumebounds(x,y,z,wind_speed))
grid on
view(3)
camlight right;
set(gcf,'Renderer','zbuffer'); lighting phong
verts = stream3(x,y,z,u,v,w,sx,sy,sz);
streamparticles(verts,70,'animate',10,'ParticleAlignment','off')
欢迎分享,转载请注明来源:表白网
评论列表(0条)