Graphics Programs Reference
In-Depth Information
Animations
The simplest way to produce an animated picture is with
comet
, which pro-
duces a parametric plot of a curve (the way
plot
does), except that you can
see the curve being traced out in time. For example,
>> t = 0:0.01*pi:2*pi;
>> figure; axis equal; axis([-1 1 -1 1]); hold on
>> comet(cos(t), sin(t))
displays uniform circular motion.
For more complicated animations, you can use
getframe
and
movie
.The
command
getframe
captures the active figure window for one frame of the
movie, and
movie
then plays back the result. For example, the following (in
MATLAB 5.3 or later — earlier versions of the software used a slightly differ-
ent syntax) produces a movie of a vibrating string:
>> x = 0:0.01:1;
>> for j = 0:50
plot(x, sin(j*pi/5)*sin(pi*x)), axis([0, 1, -2, 2])
M(j+1) = getframe;
end
>> movie(M)
It is worth noting that the
axis
command here is important, to ensure that
each frame of the movie is drawn with the same coordinate axes. (Other-
wise the scale of the axes will be different in each frame and the result-
ing movie will be totally misleading.) The semicolon after the
getframe
command is also important; it prevents the spewing forth of a lot of nu-
merical data with each frame of the movie. Finally, make sure that while
MATLAB executes the loop that generates the frames, you do not cover the
active figure window withanother window (suchas the Command Window).
If you do, the contents of the other window will be stored in the frames of the
movie.
MATLAB 6 has a new command
movieview
that you can use in place of
movie
to view the animation in a separate window, with a button to replay
the movie when it is done.
Search WWH ::
Custom Search