彗星状轨迹图代码如下:
x = cos(2*t).*(cos(t).^2);
y = sin(2*t).*(sin(t).^2);
comet(x,y);
pause(0.1);
è¯è¿äºï¼æçä¸è¡T-T
我单纯加了画图代码后确实能生成gif文件,但文件不能显示动图。所以我觉得应该是画图代码和for循环里的i有关,但还是不会写。可以再帮忙把完整的代码写给我看看吗?谢谢!
还是这个代码:
x = cos(2*t).*(cos(t).^2);
y = sin(2*t).*(sin(t).^2);
comet(x,y);
pause(0.1);
t=0:0.02:10; Nt=size(t,2);
x = cos(2*t).*(cos(t).^2);
y = sin(2*t).*(sin(t).^2);
for i=1:Nt;
cla;hold on;
plot(x,y)
plot(x(i),y(i),'o');
frame=getframe(gcf);
imind=frame2im(frame);
[imind,cm] = rgb2ind(imind,256);
if i==1
imwrite(imind,cm,'2.gif','gif', 'Loopcount',inf,'DelayTime',1e-4);%第一次必须创建!
else
imwrite(imind,cm,'2.gif','gif','WriteMode','append','DelayTime',1e-4);
end
end
非常感谢!!我再试了下三维彗星轨迹:
t=-10*pi:pi/250:10*pi; Nt=size(t,2);%t的列数
x=cos(2*t).^2.*sin(t);
y=sin(2*t).^2.*cos(t);
comet3(x,y,t);
for i=1:Nt;
……(后面和你写的一样)
可是图形窗口生成了除三维彗星轨迹图外的其他不知道是什么的图,gif文件保存的图是后者,这是哪里错了?谢谢!
t=-10*pi:pi/250:10*pi; Nt=size(t,2);%t的列数
x=cos(2*t).^2.*sin(t);
y=sin(2*t).^2.*cos(t);
% comet3(x,y,t);
for i=1:20:Nt;
cla;hold on;
if i>500;
n=i-500:i;
else
n=1:i;
end
plot3(x(1:i),y(1:i),t(1:i),'color',[1, 0.6732, 0]);
plot3(x(n),y(n),t(n),'r');
plot3(x(i),y(i),t(i),'bo');
view(3);
axis([-1,1,min(y),max(y),-30,30]);
frame=getframe(gcf);
imind=frame2im(frame);
[imind,cm] = rgb2ind(imind,256);
if i==1
imwrite(imind,cm,'2.gif','gif', 'Loopcount',inf,'DelayTime',1e-4);%第一次必须创建!
else
imwrite(imind,cm,'2.gif','gif','WriteMode','append','DelayTime',1e-4);
end
end