Quelqu'un peut m'expliquer comment extraire l'axe de rotation et l'angle de rotation d'une matrice 3D
ex :
a b c
M = c d e
f g h
Merci d'avance
-----
27/12/2010, 23h56
#2
sylvainc2
Date d'inscription
octobre 2008
Messages
401
Re : Matrice 3D
Pour l'angle c'est facile: trace(M)=2*cos(angle)+1 donc angle=arccos((trace(M)-1)/2)
Pour l'axe c'est l'ensemble des vecteurs v qui sont invariants par la rotation, autrement dit ce sont les vecteurs propres de la valeur propre 1. Donc il suffit de résoudre le système Mv = v soit (M-I)v = 0. Il y a aussi une autre facon, mais elle est un peu plus compliquée à expliquer.
28/12/2010, 00h49
#3
invite814236bd
Date d'inscription
janvier 1970
Messages
62
Re : Matrice 3D
ca veut dire quoi trace(M) dsl
28/12/2010, 01h25
#4
sylvainc2
Date d'inscription
octobre 2008
Messages
401
Re : Matrice 3D
C'est la somme des éléments de la diagonale principale de M. Dans ton exemple, trace(M)=a+d+h
Aujourd'hui
A voir en vidéo sur Futura
28/12/2010, 01h26
#5
invite814236bd
Date d'inscription
janvier 1970
Messages
62
Re : Matrice 3D
Merci.
Parcontre pour l'axe c'est pas bien compris
28/12/2010, 01h31
#6
invite814236bd
Date d'inscription
janvier 1970
Messages
62
Re : Matrice 3D
Je pense que vous avez fait une erreur dans la diagonale principale c est pas plus tot a+e+h???
28/12/2010, 13h17
#7
invite332de63a
Date d'inscription
janvier 1970
Messages
1 182
Re : Matrice 3D
Bonjour, c'est surtout la matrice qui est mal écrite.
28/12/2010, 16h52
#8
sylvainc2
Date d'inscription
octobre 2008
Messages
401
Re : Matrice 3D
Si la matrice est
alors angle=arccos( (a+e+i-1)/2 )
Et pour l'axe on peut résoudre le système (M-I)v = 0 c'est-à-dire:
(a-1)x + by +cz = 0
dx + (e-1)y +fz = 0
gx + hy +(i-1)z = 0
pour trouver un vecteur (x,y,z) sur l'axe de rotation.