Animating the movement of a figure

15 Ansichten (letzte 30 Tage)
Iñigo de la Joya
Iñigo de la Joya am 12 Dez. 2019
Bearbeitet: Andreas Bernatzky am 18 Dez. 2019
I have written a code which makes makes a rectangle rotate about a certain point bya certain angle anticlockwise, but when I proceed on the animation, it draws every single rectangle as it is rotated. How can I make the rectangle rotate without leaving a trace after every iteration?
Here is the code which inolves some funtions:
function [colouredshape] = filledshape(shape,c)
% This function will draw a shape that is filled of a certain colour
fill(shape(1,:),shape(2,:),c);
end
%%%%%%%%%%%%%%%%%%%
function [finalshape] = rotateabout(shape,a,x,y)
% this function will rotate a shape anticlockwise about a certain point rather than the
% origin (angle a, coordinates (x,y))
[newshape] = translate(-x,-y,shape);
[rotatedshape] = rotate(newshape,a);
[finalshape] = translate(x,y,rotatedshape);
end
% This is animation
n = 10;
rectangle1 = [10 10 11 11 10; 1 5 5 1 1];
for a = linspace(0,pi/2,n)
[finalshape] = rotateabout(rectangle1,a,10,5);
filledshape(finalshape,'b')
drawnow
pause(0.1)
end

Antworten (1)

Andreas Bernatzky
Andreas Bernatzky am 13 Dez. 2019
Bearbeitet: Andreas Bernatzky am 13 Dez. 2019
A rough and quick example:
for(n=1:1:360)
RectangleData = calcRectangle(n); %calculate your new position
hRectangle = plot(RectangleData); % plot your rectangle
% Now get rid of it.
delete(hRectangle); %clear your plot
end
I can not test your code at the moment. But try the delete() after your pause()
Hope I could help
  5 Kommentare
Iñigo de la Joya
Iñigo de la Joya am 18 Dez. 2019
Sorry but this doesnt work when I run it on Matlab. It draws a very strange random pattern if you try it.
One question: when I use a function to for example draw a figure, how can I store it inside a variable so that I can then delete the figure?
Andreas Bernatzky
Andreas Bernatzky am 18 Dez. 2019
Bearbeitet: Andreas Bernatzky am 18 Dez. 2019
The strange pattern is normal because I use the rand() function.chaos.PNG
you should see some blue and white shapes. (look at picture)
Maybe my example was a little bit confusing.
For your question:
FigureStorage = plot(someXvalues,someYvalues);
delete(FigureStorage);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Polar Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by