% LE MOUVEMENT

% Ce script crée une sphère en mouvement le long de l'axe X:

 

% Dessin d'une base rectangulaire:

[x,y] = meshgrid(-1:1:6,-1:1:1);

z = 0*x-1;

surf(x,y,z)

 

hold on

 

% Dessin de la sphère:

[t,p] = meshgrid(0:pi/25:2*pi,-pi/2:pi/25:pi/2);

x = cos(p).*cos(t);

y = cos(p).*sin(t);

z = sin(p);

boule = surf(x,y,z);

 

colormap jet

shading interp

axis equal

hold off

 

x0 = get(boule,'XData'); % Coordonnées initiale en X

xt = 0:0.33:5; % Définition du vecteur de déplacement

 

for i = 1:length(xt) % Boucle à compteur (voir NOTE)

   set(boule,'XData',x0+xt(i))

   drawnow % voir NOTE

end

 

xt = 5:-0.33:0;

for i = 1:length(xt)

   set(boule,'XData',x0+xt(i))

   drawnow

end

 

% NOTES: Pour déplacer un objet, on additionne une valeur à ses coordonnées initiales.

% La commande "for ... end" est une boucle. Son contenu est exécuté le nombre de fois défini par la

% variable qui suit le commande "for" (souvent i). La commande "length(n)" renvoie la longueur du

% vecteur "n". La commande "drawnow" force Matlab à dessiner la figure à ce moment. Si on l'omet, la

% figure n'est dessinée qu'à la fin de la boucle (ce qui n'est pas le but). La vitesse du déplacement

% dépend du nombre d'éléments du vecteur de déplacement et de la rapidité de l'ordinateur.