IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Parcourir un volume en biais avec un plan


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Parcourir un volume en biais avec un plan
    EDIT : J'ai enfin trouvé... mon problème venait du fait que contrairement à view et rotate, cos fonctionne en radian. J'ai lutté des jours pour ça, honte à moi



    Salut.

    Arrivant en fin de stage et le temps diminuant rapidement, je viens quérir de l'aide au sujet d'un probleme de propagation d'un plan dans un volume. Le but de l'interface est de pouvoir parcourir un volume (image 3D IRM) avec un plan selon l'angle désiré par l'utilisateur.

    J'utilise la fonction slice pour afficher des coupes dans un volume (exemple pièce jointe 1). Si l'utilisateur tourne la figure avec la caméra, il peut appuyer sur une touche du clavier et rendre le slice actif perpendiculaire à l'angle de la caméra (exemple piece jointe 2). L'utilisation de la molette de la souris devrait alors permettre de se déplacer dans la direction normale au plan.

    Le problème est que le déplacement ne se fait pas dans la direction normale mais en biais et je n'arrive pas à comprendre pourquoi.

    J'ai trouvé bizarre qu'il faille inverser les axes X et Y dans meshgrid(), dans slice(), ainsi que pour donner les coordonnées du centre de rotation avec rotate(). Du coup je me demande si il n'y a pas d'autre subtilités de ce genre quand on modifie Xdata et Ydata du slice, pour le déplacer.

    D'après mes calculs, pour déplacer le plan d'une unité dans la direction normale, je dois ajouter -cos(azimuth) en Xdata et sin(azimuth) en Ydata. Azimuth étant l'angle que forme le plan avec l'axe Y. Malheureusement le déplacement n'est pas perpendiculaire.

    Auriez vous une idée qui puisse m'aider ?

    Merci de votre attention.
    Images attachées Images attachées   

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    La distance à parcourir dans la direction normale au plan est eventData.VerticalScrollCount issu du callback de la molette. J'ai l'impression que mon problème vient de la modification de Xdata et Ydata.

    J'ai ajouté les angles azimuth de chaque plan sur le schéma. Le déplacement en X et Y serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dx = -cos(angle_azimuth) * eventData.VerticalScrollCount;
    dy =   sin(angle_azimuth) * eventData.VerticalScrollCount;
    La modification de Xdata et Ydata serait alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(handle_plan, 'Xdata', get(handle_plan,'Xdata') + dx);
    set(handle_plan, 'Ydata', get(handle_plan,'Ydata') + dy);
    Merci de votre attention



    EDIT : J'ai enfin trouvé... mon problème venait du fait que contrairement à view et rotate, cos fonctionne en radian. J'ai lutté des jours pour ça, honte à moi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/09/2008, 20h44
  2. Parcourir un tableau de String avec logic:iterate
    Par casawi dans le forum Struts 1
    Réponses: 7
    Dernier message: 07/02/2008, 14h40
  3. Calcul du volume d'un polyèdre à trois plans de symétrie
    Par méphistopheles dans le forum Mathématiques
    Réponses: 9
    Dernier message: 11/05/2007, 19h22
  4. Impression excel avec arriere plan
    Par napegadie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/12/2005, 17h16
  5. parcourir les champs d'édition avec enter
    Par programaniac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/10/2005, 23h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo