Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

Axes de rotation et angle à partir d'une matrice de rotation

Posté par
LePetitPois
28-05-16 à 18:28

Bonjour,

Après avoir fait quelques recherches j'ai trouvé un formule toute faite qui permet de passer d'une matrice de rotation 3x3 à un axe de rotation et son angle.

angle = acos(( m00 + m11 + m22 - 1)/2)
x = (m21 - m12)/?((m21 - m12)2+(m02 - m20)2+(m10 - m01)2)
y = (m02 - m20)/?((m21 - m12)2+(m02 - m20)2+(m10 - m01)2)
z = (m10 - m01)/?((m21 - m12)2+(m02 - m20)2+(m10 - m01)2)

Cependant, la personne n'a pas mis de démonstration et j'aimerais comprendre comment il a trouvé ceci.

Pouvez vous me donner des pistes ou des explications ?
Au passage me dire si ces résultats sont justes ?

Merci

Posté par
verdurin
re : Axes de rotation et angle à partir d'une matrice de rotatio 28-05-16 à 21:58

Bonsoir,
pour l'angle, cela vient de la conservation de la trace.

Posté par
Razes
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 03:00

Voici un lien intéressant mais en anglais.

Il y a une différence au niveau de la formule de calcul de l'angle à un facteur 2 près.

angle = 2\arccos((m_{00}+m_{11} + m_{22}-1)/2)
 \\ a=\sqrt{(m_{21} - m_{12})^2+(m_{02} - m_{20})^2+(m_{10}- m_{01})^2}
 \\ 
 \\ \left\{\begin{matrix}x = {(m_{21} - m_{12})}/a\\y = {(m_{02} - m_{20})}/a\\z = {(m_{10} - m_{01})}/a\end{matrix}\right.

Posté par
LePetitPois
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 12:54

Bonjour,

@Razes :

Merci du lien.
Après avoir fait d'autres recherches j'ai vu qu'une matrice de rotation pouvait s'écrire de la forme suivante avec c=cos(angle), s=sin(angle) et u un vecteur unitaire (cf image attachée tout en bas)

Y-a-t'il un nom à ce théorème ?

A partir de ça je peux trouver facilement les valeurs de ux uy et uz.

@verdurin :

Par contre pour l'angle je ne vois pas trop.
La trace restant invariante par changement de base, j'imagine donc qu'il existe une base dans laquelle je peux écrire ma matrice avec des cosinus sur la diagonale ... par contre le -1 me gêne.


Sinon sur le lien qu'a donné Razes , il est marqué plusieurs fois que l'angle vaut acos(( m00 + m11 + m22 - 1)/2).
Je ne peux pas savoir s'il y a un facteur 2 pour le moment étant donné que je ne sais pas comment trouver l'angle.

Un peu d'aide svp ?

Axes de rotation et angle à partir d\'une matrice de rotatio

Posté par
Razes
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 13:24

Le 2 de l'angle est peut être une faute de frappe de ma part.

Posté par
Razes
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 13:32

Sinon, sur le lien : angle = \arccos((m_{00}+m_{11} + m_{22}-1)/2) et c'est indiqué comment c'est calculé.

Posté par
Recomic35
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 14:25

Soyons sérieux. Comme l'a dit verdurin, la détermination de l'angle (géométrique) d'une rotation vient du fait que la trace ne dépend pas de la base dans laquelle on écrit la matrice. Or, dans une bon bien choisie, la matrice d'une rotation d'angle géométrique \theta s'écrit

 \\ \begin{pmatrix} \cos\theta& -\sin\theta &0 \\ \sin\theta& \cos\theta &0 \\ 0&0&1\end{pmatrix}
 \\
et donc la trace de la matrice de rotation (dans n'importe quelle base) est toujours 1+2\cos\theta.

L'axe d'une rotation qui n'est pas l'identité est la droite propre associée à la valeur propre 1.

Remarquons qu'une rotation n'est pas entièrement déterminée par son axe et son angle géométrique \theta : en effet on ne sait pas si l'on doit tourner de \theta dans un sens ou dans l'autre !
La rotation n'est entièrement déterminée que par son axe et l'angle orienté de rotation dans un plan orthogonal à l'axe.

Posté par
LePetitPois
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 15:38

Merci beaucoup de vos réponses.

C'était simple en fin de compte, il me manquait juste quelques connaissances mathématiques.

Problème résolu

Posté par
Razes
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 16:48

@Recomic35
Je pense que tout le monde est sérieux et a essayé de répondre à la question:

Citation :
Après avoir fait quelques recherches j'ai trouvé un formule toute faite qui permet de passer d'une matrice de rotation 3x3 à un axe de rotation et son angle.

angle = acos(( m00 + m11 + m22 - 1)/2)
x = (m21 - m12)/?((m21 - m12)2+(m02 - m20)2+(m10 - m01)2)
y = (m02 - m20)/?((m21 - m12)2+(m02 - m20)2+(m10 - m01)2)
z = (m10 - m01)/?((m21 - m12)2+(m02 - m20)2+(m10 - m01)2)


Bien entendu, à partir d'une matrice donnée 3x3, on cherche le vecteur normé invariant de la transformation, on cherche un vecteur normé perpendiculaire puis on complète notre base orthonormée par un troisième vecteur normé. Ainsi nous constituons notre matrice. Mais ce n'est pas la réponse à question posée par LePetitPois.

Posté par
Recomic35
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 18:07

Je maintiens, le lien donné par Razes n'est pas très sérieux d'un point de vue mathématique.

Pour ce qui est de la matrice écrite par LePetitPois, elle vient immédiatement de l'écriture vectorielle de la rotation r d'axe dirigé et orienté par le vecteur unitaire u et d'angle orienté de mesure \alpha :

r(x)= (u\cdot x)(1-\cos\alpha)\, u +(\cos\alpha)\, x + \sin\alpha\, (u\wedge x).

Posté par
Recomic35
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 18:33

Une petite illustration pour comprendre la formule vectorielle :


                             Axes de rotation et angle à partir d\'une matrice de rotatio

Posté par
Razes
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 19:45

Citation :
Je maintiens, le lien donné par Razes n'est pas très sérieux d'un point de vue mathématique.

Ah bon, sincèrement je suis désolé que ce site ne soit pas sérieux mais pourrez vous nous dire pourquoi?

Concernant ce qu'a dit verdurin, personne ne l'a contredit, et voici la preuve:
trace(A)=m_{11}+m_{22}+m_{33}=1+2\cos \theta\Leftrightarrow \theta=\arccos((m_{11}+m_{22}+m_{33})/2)

Pour ce qui est du dessin, c'est la transcription de ce que j'ai écrit:
Citation :
Bien entendu, à partir d'une matrice donnée 3x3, on cherche le vecteur normé invariant de la transformation, on cherche un vecteur normé perpendiculaire puis on complète notre base orthonormée par un troisième vecteur normé. Ainsi nous constituons notre matrice. Mais ce n'est pas la réponse à question posée par LePetitPois.
Je pense que vu le niveau de LePetitPois (qui n'est pas si petit que cela) il lui est très facile de faire ce dessin de cours.

Posté par
Recomic35
re : Axes de rotation et angle à partir d'une matrice de rotatio 29-05-16 à 20:00

Le dessin n'est pas la transcription de ce qu'a écrit Razes. C'est un dessin qui explique la formule

r(x)= (u\cdot x)\,u+ \cos(\alpha)\, (x-(u\cdot x)\,u)+ \sin(\alpha)\, u\wedge x  =(u\cdot x)(1-\cos(\alpha))\, u +\cos(\alpha)\, x + \sin(\alpha)\, u\wedge x.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1730 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !