Как оживить прямоугольники

Я пытаюсь сделать анимацию с кругами, полученными с помощью функции прямоугольника в 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

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 здесь

Другие вопросы по тегам