4

(x,y)オブジェクトの軌跡を表す一連の座標があります。GNU Octave を使用して、この軌跡をアニメーション化したいと思います。

データ セットは非常に大きいため、アニメーションをスムーズにしたい場合、反復ごとにプロット全体を再描画することはできません。プロットを再描画するのではなく「更新」できる関数は何ですか?

また、(vx,vy)オブジェクトの速度を表す別の点のセットもあります。アニメーション化された軌道で速度を考慮したいと思います。軌跡をオブジェクトと同じ速度でアニメーション化するために、プログラムを数ミリ秒間スリープさせるには、どの関数を使用すればよいですか?

(Octave に などの関数があることは既に知っていますがcomet、独自のアニメーターを作成する必要があります。)


編集:これが私が今まで持っているものです。これは速すぎて を使用する必要があると思っていましpauseたが、それでもかなり遅いです (xそしてy10001 個の要素があります)。

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変更できます。XDataYDatah

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 に答える