Afficher un ellipsoïde modèle avec MATLAB

Résolu/Fermé
ShariDann Messages postés 1 Date d'inscription samedi 21 février 2009 Statut Membre Dernière intervention 21 février 2009 - 21 févr. 2009 à 12:42
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 - 23 févr. 2009 à 07:16
Bonjour,

J'aimerai afficher un ellipsoid model avec MATLAB en 2D. Si dessous deux liens montrant le DTI Tensor Model. Cette représentation est très utilisé en IRM de diffusion.

http://images.google.fr/...

http://images.google.fr/...

Cordialement
Stanislas

1 réponse

Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
23 févr. 2009 à 07:16
Bonjour mon ami !
Je ne comprends pas très bien pourquoi tu cherches à afficher un ellipsoïde en 2D, en ce cas, il s'agit tout simplement d'une ellipse. Cependant, pour afficher un ellipsoïde en 3D, tu peux par exemple utiliser ezsurf, il te suffit de taper help ezsurf ou doc ezsurf si tu désires avoir de l'aide concernant cette fonction.
Après changement de coordonnées éventuel (translation de l'origine du repère et rotation des axes du repère), l'équation d'un ellipsoïde en coordonnées cartésiennes est la suivante :
x²/a²+y²/b²+z²/c²=1
a,b,c ∈ R*
L'équation en coordonnées sphériques est alors :
x=a.cos(θ).sin(Φ)
y=b.sin(θ).sin(Φ)
z=c.cos(Φ)

θ ∈ [0,2π] est la longitude (ou azimut) et Φ ∈ [0,π] est la colatitude (ou zénith).
Une fonction de ce type devrait donc convenir dans la majorité des cas :
function plot_ellipsiod(a,b,c)
fx=@(s,t)(a*cos(s).*sin(t));
fy=@(s,t)(b*sin(s).*sin(t));
fz=@(s,t)(c*cos(t));
ezsurf(fx,fy,fz,[0,2*pi,0,pi]);shading interp;axis equal;
Si ensuite tu veux réellement une vue 2D, utilise la fonction view (help view ou doc view, comme toujours...). Par exemple view(2) te donnera la vue dans le plan (O,x,y) (azimut et élévation verticale 90° pour la fonction view).
Je te souhaite une bien bonne journée !
2