每次run的时候,可以用getframe来实现
omega = 2*pi;
t = linspace(0,4,1001);
x = 2 + cos(omega*t);
y = 2 + sin(omega*t);
dt = min(diff(t));
t0 = -t;
z = -t;
% 保存的文件名
filename = 'myfig.gif';
figure(1)
for i = 1:1:120
t0 = t0 - 5*dt;
x = 2 + cos(omega*t0);
y = 2 + sin(omega*t0);
p = [y(end),z(end),x(end)];
p1 = [y(end),z(end),0];
p2 = [0,z(end),x(end)];
plot3(y, z, x, 'g-', 'linewidth',2);
hold on
fill3([0,3,3,0],[-4,-4,-4,-4],[0,0,3,3],'c','facealpha',0.2,'edgecolor','k')
plot3(y, z, zeros(size(x)), 'b-', 'linewidth',2);
plot3(zeros(size(x)),z, x, 'r-', 'linewidth',2);
plot3([p1(1),p(1)],[p1(2),p(2)],[p1(3),p(3)],'bo--','markersize',10,'markerfacecolor','b', 'linewidth',2)
plot3([p2(1),p(1)],[p2(2),p(2)],[p2(3),p(3)], 'ro--','markersize',10,'markerfacecolor','r', 'linewidth',2)
axis([0 3 -4 0 0 3])
view([50.4,20.4])
xlabel('x'), ylabel('y'),zlabel('z')
grid on
axis equal
frame = getframe(gcf);
im = frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if i == 1
imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.05);
else
imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.05);
end
pause(0.0001)
hold off
end