Bonsoir à tous,
Je cherche à appliquer une rotation à une ellipsoïde.
J'utilise l'idée de la fonction "ellipsoid" :
Avec ces lignes, j'obtiens N coordonnées de points 3D formant une ellipsoide positionnée en (xc,yc,zc).
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;
A partir de là, j'applique une matrice de rotation de tous mes points :
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...
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
Est ce que quelqu'un peut m'expliquer comment matlab fonctionne dans ce type de tracé en 3D ?
Merci
Christophe
Partager