Forum Easy3dgames Forum Index
Forum Easy3dgames
Forum du site easy3dgames.tuxfamily.org
 
Forum Easy3dgames Forum IndexFAQSearchRegisterLog in

:: recuperer les angles a partir d'un quaternio ::
Goto page: 1, 2  >
 
Post new topic   Reply to topic    Forum Easy3dgames Forum Index -> Forum Easy3dgames -> Programmation -> NxOgre
Previous topic :: Next topic  
Author Message
boboss02


Offline

Joined: 28 Nov 2007
Posts: 51

PostPosted: Tue 24 Jun - 13:14    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

bonjour

je n'arrive pas a récuperer les angles X Y Z  d'un shape a partir de son quaternion.


voila comment je recupere le quaternion
Code:
NxOgre::Actor::CollisionModel models = ((entity*)pont->tabObjet[indiceCourant])->getBod()->getCollisionModel();
[size=12]NxQuat quatt;
[/size][size=12]models[indiceShape]->getNxShape()->isBox()->getLocalOrientation().toQuat(quatt);
[/size]


 dans quatt j'ai mon quaternion.

et je rouve pas de fonction dans la classe NxQuat qui me permet de recuperer les angles sur chaque axe.


merci de votre aide
 


Back to top
L5D


Offline

Joined: 17 Jun 2008
Posts: 11
Localisation: France Belfort

PostPosted: Tue 24 Jun - 14:51    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

J'ai pas trouvé la classe quaternion de Nx par contre j'ai trouvé celle de Ogre, je suis pas sur du tout, mais les quaternions et ogre et ceux de Nx ne sont-ils pas les mêmes ?

Si c'est le cas, tu peux récupérer les valeurs des angles des différents axes avec :

        Radian getRoll();

        Radian getPitch();

        Radian getYaw();

Bon je suis aussi un débutant donc c'est ptet faux, mais bon.


Back to top
boboss02


Offline

Joined: 28 Nov 2007
Posts: 51

PostPosted: Tue 24 Jun - 15:30    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

non ça ne marche pas , ce ne sont pas les même classes
ça serait trop facile sinon


Back to top
gus


Offline

Joined: 25 Jun 2007
Posts: 133

PostPosted: Tue 24 Jun - 15:51    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

essay:

 
Code:
NxReal Angle;
quatt->getAngleAxis(Angle,NxVec3(0,0,1));
Le vecteur correspond a ton axe.
_________________
http://easy3dgames.tuxfamily.org/


Back to top
boboss02


Offline

Joined: 28 Nov 2007
Posts: 51

PostPosted: Wed 25 Jun - 09:47    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

voici le code de la fonction getangleAxis()



Code:
return axis and angle of rotation of quaternionangle = NxMath::acos(w) * NxReal(2.0);// this is getAngle()NxReal sa = NxMath::sqrt(NxReal(1.0) - w*w);
if (sa)
{
  axis.set(x/sa,y/sa,z/sa);
  angle = NxMath::radToDeg(angle);
}
else
  axis.set(NxReal(1.0),NxReal(0.0),NxReal(0.0));






cete fonction modifie le parametre angle et aussi le parametre axis. et je ne vois pas comment je peux sortir mes 3 angles de ça !

edit : apres quelques essais , j'obtiens un angle correcte seulement dans le cas d'une rotation sur un seul axe des que je tourne sur un autre axe la valeur ne correspond plus !


Back to top
gus


Offline

Joined: 25 Jun 2007
Posts: 133

PostPosted: Wed 25 Jun - 12:54    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

Tu peu convertire ton quaterninon NxOgre vers Ogre en donnant w,x,y et z et utiliser les fonctions getPitch etc.

Sinon,j'avais mal lue la doc Embarassed , mais c'est bizard.Sa donne l'impression qu'un quaternion peut se résumer par une rotation autour d'un axe et que la composée de rotations dans l'espace est elle même un rotation dans l'espace...ce qui me parait faux(mais bon,je suis pas un pro des quaternion non plus,je suis en terminale^^).
_________________
http://easy3dgames.tuxfamily.org/


Back to top
boboss02


Offline

Joined: 28 Nov 2007
Posts: 51

PostPosted: Wed 25 Jun - 13:10    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

l'idée de passer par la classe quaternion de ogre n'est pas bete du tout. mais j'ai choisi une autre solution  qui consiste a utiliser 3 quaternions ( cad 1 par rotatition sur un axe ) ce qui me donne ça  :

Code:
[size=12]NxQuat Q1,Q2,Q3,Q;
Q1 = NxQuat(newRotX,NxVec3(1,0,0));
Q2 = NxQuat(newRotY,NxVec3(0,1,0));
Q3 = NxQuat(newRotZ,NxVec3(0,0,1));
Q = Q1 * Q2 * Q3; // rotation globale
float angleX = [size=12]NxMath::radToDeg(Q1.getAngle();[/size]
[size=12]float angleY = [size=12]NxMath::radToDeg(Q2.getAngle();[/size]
[size=12]float angleZ = [size=12]NxMath::radToDeg(Q3.getAngle();[/size]
[/size][/size][/size]

mais j'essaierais ta methode des que j'ai un peu de temps

alors le bac c'etait comment ? ( je suppose que tu es en S ?)


 


Back to top
gus


Offline

Joined: 25 Jun 2007
Posts: 133

PostPosted: Wed 25 Jun - 14:20    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

Oui j'avais penser a cette methode,mais je n'en etait pas trop sur,mes connaissances sur les quaternions etant limitées.


Sinon le bac en maths et en physique sa va,dans le reste c'est moins glorieux^^
_________________
http://easy3dgames.tuxfamily.org/


Back to top
boboss02


Offline

Joined: 28 Nov 2007
Posts: 51

PostPosted: Wed 25 Jun - 14:38    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

pour le bac c'etait pareil pour moi

Back to top
gus


Offline

Joined: 25 Jun 2007
Posts: 133

PostPosted: Wed 25 Jun - 16:45    Post subject: recuperer les angles a partir d'un quaternio Reply with quote

Apres avoir demander,dans l'espace la composé de 2 rotation est une rotation.
Avec la commande que j'avais dit avant,il faudrait plutot faire:


 
Code:
NxReal Angle;
NxVec3 Axe;
quatt->getAngleAxis(Angle,Axe);
Et tu aurais alors l'angle et l'axe de la rotation représenté par le quaternion.

Tu a passer ton bac il y a combien de temps?
_________________
http://easy3dgames.tuxfamily.org/


Back to top
Display posts from previous:   
Post new topic   Reply to topic    Forum Easy3dgames Forum Index -> Forum Easy3dgames -> Programmation -> NxOgre All times are GMT + 1 Hour
Goto page: 1, 2  >
Page 1 of 2

 
Jump to:  

Portal | Index | Administration Panel | Free forum | Support forum | Forum directory | Legal notices | Report a violation
Texno x0.3 © theme by Larme D'Ange 2006
Powered by phpBB © 2001, 2005 phpBB Group