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