4

我有一组(x,y)描述物体轨迹的坐标。我想使用 GNU Octave 为这条轨迹制作动画。

数据集非常大,所以如果我希望动画流畅,我将无法在每次迭代时重绘整个绘图。有哪些功能可以让我“更新”绘图而不是重绘它?

另外,我还有另一组(vx,vy)点,它们描述了物体的速度。我希望我的动画轨迹考虑到速度。我应该使用什么函数让程序休眠几毫秒,以使轨迹以与对象相同的速度进行动画处理?

(我已经知道 Octave 有 等功能comet,但我需要自己编写动画师。)


编辑:这是我到目前为止所拥有的。我希望它运行得太快并且需要我使用pause,但它仍然很慢(x并且y有 10001 个元素)。

bounds = [min(x) max(x) min(y) max(y)];
axis(bounds);

hold on
for k = 2 : length(x)
    plot(x(k-1:k), y(k-1:k));
    drawnow("expose");
end
hold off
4

2 回答 2

6

您可以使用该set命令仅更改某个绘图对象的XData和数据:YDatah

h = plot(my_xdata(0),my_ydata(0))
for i_=1:length(my_xdata)
    set(h, 'YData', my_ydata(i_))
    set(h, 'XData', my_xdata(i_))
    pause(sqrt(vx(i_)^2+vy(i_)^2))
end

pause(x)命令暂停几秒钟,x可以小于 1。

于 2012-05-19T13:52:39.960 回答
0

我认为您正在寻找“保持”命令。持有该图将所有以前的数据保留在该图上,并将新数据添加到顶部。

于 2012-09-20T20:21:59.047 回答