2017-05-22 10 views
1

Matlab2013の矩形関数で得られた円でアニメーションを作成しようとしています。プロットをアニメーション化するために、私はclf,drawnowpauseを使ってみましたが、うまくいきません。一方、ドットやラインを使って作業するときは、setpauseを使用しても問題ありませんが、長方形でこれらを使用する方法はありません。矩形をアニメーション化する方法

ここでは、私がdrawnowでどうしようとしたかを示します。時間ステップは1000回あり、ステップごとにxyの4つの円の座標が格納されています。

%At every time step I would like to plot 4 circles. 
PosxProt = rand(1000, 4) 
PosyProt = rand(1000, 4) 

for i=1:1000 
    clf 
    hold on 
    for j=1:4 
     rP=0.345; %radius of the circles 
     cP=[PosxProt(i,j) PosyProt(i,j)]; %center of the circles 
     rectangle('Position',[cP-rP 2*rP 2*rP],'Curvature',[1 1],'facecolor','r') %plot circle 
    end 
    drawnow 
    pause(0.05) 

end 
+0

何が問題なのですか? – m7913d

+0

私はアニメーションが機能しないことを意味しました。 – Fisiquin

+1

私の場合、アニメーションは機能します。ループにブレークポイントを置くか、一時停止時間を延長すると機能しますか? – m7913d

答えて

1

あなたは、以下の式を使用して矩形をパラメータすることができます

% 2*p and 2*q are the size of the rectangle 
t = 0:0.01:1; 
x=p*(abs(cos(t))*cos(t)+abs(sin(t))*sin(t)) 
y=q*(abs(cos(t))*cos(t)-abs(sin(t))*sin(t)) 

そして、彗星を使用して矩形をプロット:

comet(x,y) 

また、あなたがcomethereのためのより多くのオプションを見つけることができます。

関連する問題