ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

drawnow

Figure を更新してコールバックを処理する

構文

  • drawnow
  • drawnow limitrate
  • drawnow nocallbacks
  • drawnow limitrate nocallbacks
  • drawnow update
  • drawnow expose

説明

drawnow は Figure を更新し、保留中のコールバックをすべて処理します。graphics オブジェクトを変更して、すぐに更新内容を画面に表示するには、このコマンドを使用します。

drawnow limitrate は、更新回数を 20 フレーム/秒に制限します。前回の更新から 50 ms 以内の場合、あるいは前の変更によりグラフィックス レンダラーがビジー状態になっている場合、drawnow は新規の更新を破棄します。ループ内で graphics オブジェクトを更新していて個々の更新を画面に表示する必要がない場合に、このコマンドを使用します。更新をスキップすることにより、高速アニメーションを作成できます。保留中のコールバックが処理されるので、アニメーション中に Figure を操作できます。

drawnow nocallbacks は、次の完全な drawnow コマンドまで、マウスのクリックなどのコールバックを延期します。コードへのコールバックの割り込みを防ぐには、このオプションを使用します。詳細は、drawnow と等価のアクションを参照してください。

drawnow limitrate nocallbacks は、更新回数を 20 フレーム/秒に制限し、レンダラーがビジー状態の場合は更新をスキップし、コールバックを延期します。

drawnow update はレンダラーがビジー状態の場合は更新をスキップし、コールバックを延期します。

    メモ:   この構文は推奨されません。代わりに limitrate オプションを使用してください。

drawnow expose は、Figure を更新しますが、コールバックを延期します。

    メモ:   この構文は推奨されません。代わりに nocallbacks オプションを使用してください。

すべて折りたたむ

2,000 点のデータ点を追加しながら伸びるラインのアニメーションを作成します。ループの各反復の後に、drawnow を使用して変更内容を画面に表示します。

h = animatedline;
axis([0 4*pi -1 1])
x = linspace(0,4*pi,2000);

for k = 1:length(x)
    y = sin(x(k));
    addpoints(h,x(k),y);
    drawnow
end

10,000 点のデータ点を追加しながら伸びるラインのアニメーションを作成します。10,000 点もあるため、更新のたびに描画すると低速になります。drawnow limitrate を使用して更新回数を制限することで、高速で滑らかなアニメーションを作成します。次に、ループの終了後に drawnow を呼び出して、最後の更新を表示します。

h = animatedline;
axis([0 4*pi -1 1])
x = linspace(0,4*pi,10000);

for k = 1:length(x)
    y = sin(x(k));
    addpoints(h,x(k),y);
    drawnow limitrate
end
drawnow

アニメーション ループの前にデータをすべて計算します。

h = animatedline;
axis([0 4*pi -1 1])
x = linspace(0,4*pi,10000);
y = sin(x);

for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow limitrate
end
drawnow

計算時間が長い場合、データを事前計算することでパフォーマンスを向上できます。事前計算では割り込みなしで計算を行うので、計算時間が最短になります。さらに、アニメーション ループ内ではグラフィックス コードのみを処理するので、アニメーションを滑らかにすることができます。

詳細

すべて折りたたむ

drawnow と等価のアクション

次のアクションは、完全な drawnow コマンドの呼び出しと等価です。

ヒント

  • nocallbacks オプションは常に、割り込みコールバックをキューに追加します。割り込みコールバックを破棄する場合は、代わりに Interruptible および BusyAction のプロパティを使用します。

R2006a より前に導入

この情報は役に立ちましたか?