Graphics    

消去モード

MATLABがグラフィックスオブジェクトを再描画するために使う方法を選択することができます。MATLABがオブジェクトを再描画しなければならない原因の一つは、そのオブジェクトのプロパティを変更することです。この挙動を利用して、アニメーションシーケンスを作成することができます。典型的なシナリオは、あるグラフィックスオブジェクトを描画して、各ループの中で少しずつx-、y-、z-座標を設定し直すことによって、その位置を変更します。

異なる消去モードを選択することによって、様々な効果を生み出すことができます。この節では、ダイナミックな再描画に便利な3つのモードを使用する方法について説明します。

これら3つのモードはすべて、MATLABが使用する通常モードよりも(精度は落ますが)高速です。

例題 - 消去モードを使ったアニメーション

3次元軌跡を時間的に観察することは、興味深く多くの情報が得られる場合がよくあります。この例は、Lorenzのストレンジアトラクタとして知られる、非線形微分方程式で記述されるカオス的な動作に関するものです。これは、ベクトル値関数 y(t)yに依存する行列Aを使って、式の形式で書くことができます。

解は2つの異なる点の回りを周回しますが、そのどちらにも固定されることはありません。この例は、もっとも単純な数値解法である固定刻みのEuler法による解で近似します。結果の精度はあまり高くありませんが、他の手法と同様に定性的な挙動を示します。

plot3ステートメントは、EraseModenoneに設定し、プロットを再描画するときにすでにプロットした点を消去しません。さらに、プロットオブジェクトのハンドル番号を保存します。for ループ内で、setステートメントはプロットオブジェクトを参照し、新しい位置に対して内部に格納された座標を変更します。本書ではダイナミックに展開する出力を示すことはできませんが、つぎの図はスタティックなスナップショットを示しています。

MATLABに関する限り、この例で作成したグラフには1つの点しか含まれていないことに注意してください。スクリーン上に見えるものは、MATLABが消去しないように指示した前ステップでのプロットの残像です。MATLABからこのグラフを印刷する唯一の方法は、スクリーンキャプチャを使うことです。Figureウインドウ内容をMATLABイメージとして作成するのに、captureコマンドを使います。

バックグランド消去モード   EraseMode backgroundの効果を見るためには、以下のステートメントを前のプログラムに付加します。

holdが、onの状態なので、このコードはEraseModeプロパティをbackgroundに設定し、マーカを"pink eraser"(ピンク色の方形マーカ)に変更することによって、前に作成したグラフを消去します。

Xor消去モード   最初のplot3ステートメントのEraseModenoneからxorに変更すると、移動する点(Marker '.')のみが表示されます。Xorモードは、前のグラフィックスの残像をスクリーン上に残したくないアニメーション等を作成するのに使用します。

もう一つの例

MATLABのデモプログラム lorenzは、より正確な数値近似とLorenzのストレンジアトラクタのより精巧な表示を可能にします。他のMATLABデモには、アニメーション技法を示すものもあります。


 例題 - FFTをムービーとして可視化  フォーマット付きグラフ