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

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

 Accepted Answer

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以降では、オプション指定不要で、同等の処理速度を期待できます。
 

More Answers (0)

Categories

Find more on R2014b でのグラフィックスの変更点 in Help Center and File Exchange

Products

Release

R2014b

Community Treasure Hunt

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

Start Hunting!