您还可以使用comet3()
包,它通过绘图对轨迹进行动画处理:
delay = 0.001 % seconds
figure
comet3(r.*sin(t), r.*cos(t), z, delay);
这会产生一个连续的轨迹,我更喜欢它而不是离散的 * 序列。
一个缺点是版本comet
and comet3
Octave 3.6.4 附带的版本很慢,无论您使用的延迟如何。但这可以通过使用以下技巧来克服安迪拉斯在这个问题中 https://stackoverflow.com/a/10665740/181638:
% plot the first point to get started
h = plot3(x(1),y(1),z(1),"b");
axis([min(x), max(x), min(y), max(y), min(z), max(z)]);
% refresh the plot in a loop through the rest of the data
for k = 1:length(z);
set(h, 'XData', x(1:k));
set(h, 'YData', y(1:k));
set(h, 'ZData', z(1:k));
pause (0.001); % delay in seconds
% alternatively could provide a velocity function
% pause(sqrt(vx(k)^2+vy(k)^2+vz(k)^2));
endfor
小注释:修改函数后,您需要强制 Octave 重新加载它因为默认情况下它不会这样做 http://www.obihiro.ac.jp/~suzukim/masuda/octave/html3/octave_74.html。您可以重新启动,或者更好地使用clear comet
and clear comet3
。然后下次调用这些函数时,它们的定义将被刷新。