R2014b 以降で 'EraseMode' プロパティをどのように書き換えればよいですか?

MATLAB R2014a 以前のバージョンでは、アニメーションを作成するために 'EraseMode' プロパティを使用していました。
同じコードを MATLAB R2014b 以降のバージョンで実行したところ、下記の警告メッセージが表示されます。
 
警告: EraseMode プロパティはサポートされなくなったため、将来のリリースではエラーとなります。
どのように、EraseMode プロパティを対処すればよいか教えてください。

 Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 2 de Ag. de 2016

0 votos

R2014b 以降では、全てのグラフィックスオブジェクトから 'EraseMode' プロパティは削除されています。以下で紹介する方法で、EraseMode プロパティとほぼ同様の効果を得ることができますので、書き換えをご検討ください。
アニメーションの作成
各フレームに対してデータを追加することで、画像を重ね書きする場合、'EraseMode' プロパティを 'none' に設定する代わりに、以下のいずれかを使用することができます。
  • 'hold on' を使用し、新しいデータをグラフに追加描画する
  • 'animatedline' 関数を使用し、ラインアニメーションを作成する
  • 'movie' 関数を使用し、記録されたムービーフレームを再生する
例えば、以下の例では、animatedline 関数を用いた、ラインのアニメーション作成を行います。
 
theta = linspace(0,2*pi,10000);
h = animatedline();
axis([0,2*pi,-1,1])
 
for t = theta
    addpoints(h,t,sin(t));
    drawnow update;
end
オブジェクトデータの更新
グラフィックスオブジェクトを変更した際、その内容をすぐに表示に反映させたい場合には、'EraseMode' プロパティを 'xor' に設定する代わりに、drawnow コマンドを使用してください。
なお、drawnow には、更新回数を 20 フレーム/秒に制限する "drawnow limitrate"などいくつかのモードがあります。詳細については、ヘルプドキュメントをご覧ください。
色の重ね合わせ表現
オーバーレイした色を表示する場合、'EraseMode' を 'xor' にする代わりに、各オブジェクトの透明度を調整してください。
レンダリングの高速化
R2014a 以前のバージョンではレンダリングの高速化目的で、、'EraseMode' を 'xor' に設定する場合がありましたが、R2014b以降では、オプション指定不要で、同等の処理速度を期待できます。
 

Más respuestas (0)

Categorías

Más información sobre R2014b でのグラフィックスの変更点 en Centro de ayuda y File Exchange.

Productos

Versión

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!