Bonsoir à tous,

Je cherche à appliquer une rotation à une ellipsoïde.

J'utilise l'idée de la fonction "ellipsoid" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
[xs,ys,zs]=sphere(N);
xec = xr*xs+xc;
yec = yr*ys+yc;
zec = zr*zs+zc;
Avec ces lignes, j'obtiens N coordonnées de points 3D formant une ellipsoide positionnée en (xc,yc,zc).

A partir de là, j'applique une matrice de rotation de tous mes points :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
teta=deg2rad(30);
mat_rot=[cos(teta) -sin(teta) 0;sin(teta) cos(teta) 0;0 0 1];
for a = 1:N
      new_pt(:,a)=mat_rot*[xec(a);yec(a);zec(a)];
end
J'obtiens maintenant les nouvelles coordonnées de mon ellipsoïde mais là, impossible pour moi d'afficher cette ellipsoïde car en utilisant la fonction "surf", matlab me dit que le troisième argument (Z) ne doit ni être un scalaire ni un vecteur mais une matrice...

Est ce que quelqu'un peut m'expliquer comment matlab fonctionne dans ce type de tracé en 3D ?

Merci

Christophe