我正在尝试使用Matlab2013中的矩形函数获得的圆形动画。为了动画情节,我尝试使用clf
,drawnow
和pause
,但它似乎不起作用。另一方面,当我使用点或线时,我使用set
和pause
并且它工作正常,但我没有看到使用矩形的方法。
在这里,我向您展示了我如何尝试使用drawnow
。有1000个时间步,每次步骤我都存储了四个圆的x
和y
坐标。
%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 :(得分: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)
您还可以找到comet
here的更多选项。