matlab画动态简单轨迹,MATLAB中绘制质点轨迹动图并保存成GIF

工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示。

绘制质点轨迹动图可用comet和comet3命令,使用例子如下:

t = 0:.01:2*pi;

x = cos(2*t).*(cos(t).^2);

y = sin(2*t).*(sin(t).^2);

z = t;

comet(x,y,0.1); %绘制二维

%comet3(x,y,z,0.1); %绘制三维

这有一个问题在于comet或comet3无法控制绘制的动画的速度,为了实现这一点,一个可行的方法是重写comet和comet3,在每一个for循环中增加:

pause(interval)

其中interval可以是用户输入的每帧的时间间隔。

为了实现一边绘制动图,一边保存成GIF动画,我的实现方法是重写comet和comet3,具体如下:

在每个for循环的末尾增加:

frame = getframe(gcf);

im = frame2im(frame);

[imind,cm] = rgb2ind(im,256);

if GifImCount == 1;

imwrite(imind,cm,filename,'gif','DelayTime',interval, 'Loopcount',inf);

else

imwrite(imind,cm,filename,'gif','DelayTime',interval, 'WriteMode','append');