Cette page explique comment réaliser des animations avec Matlab. L'idée est de créer une figure, récupérer les objets associés et d'actualiser les propriétés de ces objets. La page présente un guide étape par étape. Si vous êtes déjà familié avec Matlab, vous pouvez aller directement au code d'exemple.
Pour commencer, créons la figure. Ici, nous allons juste dessiner un point aux coordonnées (10,10) dans une nouvelle figure :
figure
Forcer les échelles entre 0 et 20 sur chaque axe :
axis ([0,20,0,20])
Conserve le contenu précédent dans la figure :
hold on
La commande suivante dessine un point. Notez que nous allons récupérer les propriétés
du plot dans l'objet h
:
h = plot (10,10,'o');
La figure devrait normalement ressembler à ça :
Lorsuqe l'on affiche le point, on récupére un objet (h
) qui contient les
propriétés du plot. Il est possible d'afficher ces propriétés avec la commande suivante :
>> get (h)
AlignVertexCenters: 'off'
Annotation: [1×1 matlab.graphics.eventdata.Annotation]
BeingDeleted: 'off'
BusyAction: 'queue'
ButtonDownFcn: ''
Children: [0×0 GraphicsPlaceholder]
Clipping: 'on'
Color: [0.9290 0.6940 0.1250]
CreateFcn: ''
DeleteFcn: ''
DisplayName: ''
HandleVisibility: 'on'
HitTest: 'on'
Interruptible: 'on'
LineJoin: 'round'
LineStyle: 'none'
LineWidth: 0.5000
Marker: 'o'
MarkerEdgeColor: 'auto'
MarkerFaceColor: 'none'
MarkerIndices: 1
MarkerSize: 6
Parent: [1×1 Axes]
PickableParts: 'visible'
Selected: 'off'
SelectionHighlight: 'on'
Tag: ''
Type: 'line'
UIContextMenu: [0×0 GraphicsPlaceholder]
UserData: []
Visible: 'on'
XData: 10
XDataMode: 'manual'
XDataSource: ''
YData: 10
YDataSource: ''
ZData: [1×0 double]
ZDataSource: ''
La commande précédente affiche toutes les propriétés du point. Les propriétés les plus utiles sont :
Pour créer une animation, nous n'allons pas redessiner le point. Nous allons
actualiser ses propriétés avec la commande set
. Pour commencer,
changeons le marqueur du point :
set (h, 'Marker', 'x')
Le marker devrait être modifié pour une croix :
Nous pouvons aussi changer la couleur du point :
set (h, 'Color', 'r')
La couleur devrait être changé en rouge :
L'attibut le plus important pour créer une animation est de pouvoir actualiser les coordonnées du point. Il est possible de modifier plusieurs attributs en une seule commande. La ligne suivante modifie simultanément les coordonnées X et Y du point :
set (h, 'XData',3, 'YData', 5)
Ici, le point est déplacé au coordonnées (3,5) :
Le script suivant dessine une ligne verticale et anime cette ligne de façon à la faire tourner autour du centre du repère (0,0) :
close all;
clear all;
%% Initialization of the figure
% Draw the line and get line properties
l = line ([0,0] , [0,1]);
% Set axis
axis ([-2,2,-2,2]);
%% Main loop
% Loop on the line angle (from 0 radians to 2pi radians
for a=0:0.01:2*pi
% Update the line coordinates
set (l, 'XData',[0,sin(a)], 'YData',[0, cos(a)] );
% Refresh the figure
drawnow;
end
Voici le résultat :