Calculer matrice rotation, axe quelconque

poiuytrez3 Messages postés 150 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 17 mars 2009 - 27 avril 2006 à 12:38
poiuytrez3 Messages postés 150 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 17 mars 2009 - 27 avril 2006 à 19:17
Bonjour,
je suis en train de faire un petit moteur 3D de A à Z.
J'aimerai bien calculer un matrice rotation à partir de n'importe quel axe. Je sais déjà calculer la matrice roation de l'axe X, Y et Z.

Merci!

2 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
27 avril 2006 à 16:48
T'as de la chance, j'avais écris la formule théorique dans ma lib de matrice.

Voila la formule:

   

//         |
Ux²+Ca*(1-Ux²)        
     Ux*Uy*(1-Ca)-Uz*Sa    
Ux*Uz*(1-Ca)+Uy*Sa |

//[R] = | Ux*Uy*(1-Ca)+Uz*Sa   
Uy²+Ca*(1-Uy²)             
Uy*Uz*(1-Ca)-Ux*Sa |

//         |
Ux*Uz*(1-Ca)-Uy*Sa    
Uy*Uz*(1-Ca)+Ux*Sa         
Uz²+Ca*(1-Uz²)     |


Avec Ux, Uy, Uz les composantes du vecteur de rotation. Je me rappelle
pas s'il faut qu'il soit normé ou pas. Je sais pas si ca a une
influence sur la formule. Dans le doute, norme d'abord ton vecteur,
puis tu verras bien si t'obtiens la meme chose, sans le normer.


Ca = cos(alpha) avec alpha l'angle de rotation.

Sa = sin(alpha).
0
poiuytrez3 Messages postés 150 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 17 mars 2009
27 avril 2006 à 19:17
Merci.
0
Rejoignez-nous