我有一套(x,y)
描述物体运动轨迹的坐标。我想使用 GNU Octave 制作该轨迹的动画。
数据集非常大,因此如果我希望动画流畅,我将无法在每次迭代时重新绘制整个绘图。有哪些函数可以让我“更新”绘图而不是重新绘制它?
另外,我还有另外一套(vx,vy)
点,描述物体的速度。我希望我的动画轨迹能够考虑速度。我应该使用什么函数让程序休眠几毫秒,以使轨迹以与对象相同的速度进行动画处理?
(我已经知道 Octave 具有诸如comet
,但我需要编写自己的动画师。)
Edit:这是我到目前为止所掌握的。我预计它运行得太快并需要我使用pause
,但它仍然很慢(x
and 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
您可以使用set
命令只改变XData
and YData
特定绘图对象的数据h
:
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
The pause(x)
命令暂停x
秒,可以小于 1。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)