matlab 动态绘图

来源:互联网 发布:文凭是硬件软件 编辑:程序博客网 时间:2024/04/28 13:34
EraseMode的几种擦除方式: 
1)  normal方式: 
使用该选项后,重画整个显示区,这种模式产生的图像最准确,但较慢; 
2)  background方式 
将旧对象的颜色变成背景色,从而达到擦除的目的。这种模式将损坏被擦除对象下面的对象; 
3)  xor方式 
对象的绘制何擦除由该对象颜色与屏幕颜色的异或而定。只画与屏幕颜色不一致的新对象点,只擦除与屏幕颜色不一致的原对象点。该方式不损害被擦除对象下面的其他图像; 
4)  none方式 
不做任何擦除。 

x = -pi:pi/30:pi;
h = plot(x,cos(x),':','MarkerEdgeColor','k','MarkerFaceColor','r','MarkerSize',8,'EraseMode','normal')
for j = 1:3000
       y = sin(3*x+0.006*j);
       set(h,'ydata',y);
       drawnow;
       pause(0.02);
end

将上面动画制作成avi格式的代码:
aviobj = avifile('mymovie.avi','fps',1); %一秒一帧
x = -pi:pi/30:pi;
h = plot(x,cos(x),':','MarkerEdgeColor','k','MarkerFaceColor','r','MarkerSize',8,'EraseMode','normal')
for j = 1:10
       y = sin(3*x+0.006*j);
       set(h,'ydata',y);
       drawnow;
       frame = getframe(gca);
       aviobj = addframe(aviobj,frame);
       pause(0.02);     
end
aviobj = close(aviobj);
0 0