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