% 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.