Getting Started | ![]() ![]() |
Erase Mode法
フレームからフレームへの変化が最小となる単純な長い一連のプロットに対して、EraseMode
プロパティの利用が適切です。ここで、Brown運動のシミュレーションの例を示します。以下のように点数を指定します。
n = 20
s = .02
これら2つのパラメータに対する最良値は、ユーザが使用するコンピュータの速度に依存しています。-1/2
と +1/2 の範囲で(x,y) 座標系で n
個のランダムな点を作成します。
x = rand(n,1)-0.5; y = rand(n,1)-0.5;
一辺が-1から1の正方形内に点をプロットします。点を表すベクトルに対するハンドル番号を保存し、その
EraseMode
に xor
を設定します。これは、1つの点の座標が変化したとき、プロット図全体を書き換えないことを意味しています。また、"排他的論理和"演算を使って、一つの点が囲むバックグランドカラーをリストアします。
h = plot(x,y,'.'); axis([-1 1 -1 1]) axis square grid off set(h,'EraseMode','xor','MarkerSize',18)
さて、アニメーションを始めましょう。Ctrl-c
を入力するまで停止しない無限 while
ループがあります。ループが繰り返される度に、正規分布するランダムノイズが点を表す座標に加えられます。それで、全体が新しいプロットを作成する代わりに、オリジナルプロットの
XData
と YData
プロパティを単に変化させます。
while 1 drawnow x = x + s*randn(n,1); y = y + s*randn(n,1); set(h,'XData',x,'YData',y) end
点の一部が正方形の外部に生じるのにどのくらいかかりますか?全ての点が正方形の外部になるのにどのくらいかかりますか?
![]() |
アニメーション | ムービーの作成 | ![]() |