2

コマンドを使用して、MatLab で短いアニメーションを作成しようとしていますmovie。アニメーションは円を描くことになっています。ただし、次のスクリプトを実行すると、'o' 記号は Figure ウィンドウの周りをランダムにジャンプするだけで、跡を残すことはありません。

z = linspace(0,2*pi,100);
nframes = length(z);
Frames = moviein(nframes);
for i = 1:nframes
    x = cos(i);
    y = sin(i);
    plot(x,y,'o','erase','none');
    Frames(:,i) = getframe;
    pause(0.25);
end
movie(Frames,1)

スクリプトが正しく動作しない理由を誰かが説明してくれたら、とてもありがたいです!

4

3 に答える 3

5

これで円が描画されます。それが役に立てば幸い。

z = linspace(0,2*pi,100);
nframes = length(z);
Frames = moviein(nframes);
for i = 1:nframes
    x = cos(2*pi*i/nframes);
    y = sin(2*pi*i/nframes);
    plot(x,y,'o');
    hold on
    Frames(:,i) = getframe;
    pause(0.01);
end
movie(Frames,1)
于 2012-05-31T21:43:53.673 に答える
2

zおそらく、ベクトルをループしたいでしょう。に変更x = cos(i)してx = cos(z(i))みてくださいy = sin(i)

于 2012-05-31T21:12:09.970 に答える
0

これでかなり遅れていますが、誰かに役立つことを願っています...円のポイントをアニメーション化する方法を検討していますが、まだ理解していませんが、何かに気づきましたあなたの円をより「円形」に見せるかもしれない上記の提案されたコード。設定した後

hold on

ちょうど言うために別の行を追加する場合

axis('equal'); 

プロットに合わせてスケーリングする軸を取得するため、図ウィンドウの寸法に応じて円が破損することはありません。

于 2012-10-16T07:43:22.347 に答える