Bonjour,
Après plusieurs recherche sur le net , je n'arrive pas à retrouver l'axe de rotation de mon objet .
Je m'explique suite à des rotations sur les 3 axes de mon repère (
glRotatef (alpha1 1 0 0 ) glRotatef (alpha2 0 1 0 ) glRotatef (alpha3 0 0 1 )),
j'aimerais pourvoir afficher l'axe de rotation qui découle du changement d'un de ces 3 angles .
Il s'évère qu'en passant par les rotate de l'opengl cela créer une perte de liberté sur l'objet .
En passant par les quaternions je trouve bien un vecteur $x $y $z $w qui me permet d'avoir l'axe de rotation. Mais en affichant cet axe , celui ci ne correspond pas à l'axe réel qui est utilisé pour faire tourner l'objet sur un des axes choisis.
J'utilise ce code pour multiplier mes quaternions Q ( w x y z )
En multipliant d'abord Qx avec Qy puis le résultat par Qz.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 set w [expr $w1*$w2 - $x1*$x2 - $y1*$y2 - $z1*$z2] set x [expr $w1*$x2 + $x1*$w2 + $y1*$z2 - $z1*$y2] set y [expr $w1*$y2 + $y1*$w2 + $z1*$x2 - $x1*$z2] set z [expr $w1*$z2 + $z1*$w2 + $x1*$y2 - $y1*$x2]
J'arrive donc à un vecteur v (x y z ) et une rotation pour faire ma rotation glRotate w x y z
Je ne sais pas si c'est la bonne méthode ?
MErci.
Partager