1

我正在尝试使用 Matlab2013 中的矩形函数获得的圆圈制作动画。为了使情节动画化,我尝试使用clf,drawnowpause,但它似乎不起作用。另一方面,当我使用点或线时,我使用setandpause并且它工作正常,但我看不到将这些与矩形一起使用的方法。

在这里,我向您展示我是如何尝试使用drawnow. 有 1000 个时间步长,每个时间步长我都存储了四个圆的xy坐标。

%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
4

1 回答 1

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 此处找到更多选项。

于 2017-05-22T10:47:30.090 回答