#1 

03-12-2006 08:57:39

Exedor
Membres
Date d'inscription:
Messages: 10
IP: 83.157.237.144
Courriel

Bonjour, j'ai un probleme dans les rotations avec irrlicht.

Pour faire une rotation sur l'axe Y, je n'ai pas de probleme ; je fait

a.Y -=  0.3f;
nodeSydney->setRotation(a);

Et ensuite, au moment de bouger le perso :

PosSydney.X +=  cos(SydneyRot.Y  * 3.14159265384 /180 )*0.3f;
PosSydney.Z -=  sin(SydneyRot.Y  * 3.14159265384 /180 )*0.3f;

Mais pour les rotations sur l'axe des Z, j'ai un probleme. En effet sela marche quand je n'ai fait aucune rotation sur l'axe Y , mais quand il y a déja eu rotation, le perso ne bouge pas dans le bon sens

De plus, je ne sais pas quoi mettre a la place de
PosSydney.X +=  cos(SydneyRot.Y  * 3.14159265384 /180 )*0.3f;
PosSydney.Z -=  sin(SydneyRot.Y  * 3.14159265384 /180 )*0.3f;

pour cette rotation sur l'axe Z


Voila, je ne suis pas sur d'avoir été bien explicite.

Merci et au revoir


Hors ligne


#2 

06-12-2006 12:40:19

Dekron
Membres
Date d'inscription:
Messages: 46
IP: 194.167.30.129
Courriel  Site web

hummm ... je ne connais pas ces fonction la, mais je me demande ... est ce que le référentiel se replace par rapport au personnage a la fin de la première rotation ?

Quand ca va dans le mauvais sens, ca va dans lequel ( en fait, peux tu etre plus précis ? ) ?


Visitez Arcis : MMORPG ammateur utilisant irrlicht !
Etudiant ingénieur, maitrise C++, connaissances python & php.

Hors ligne


#3 

07-12-2006 19:51:49

Exedor
Membres
Date d'inscription:
Messages: 10
IP: 83.156.195.22
Courriel

Hé ben j'ai réussit a résoudre ce probleme grace a cette fonction :

void rotate(vector3df rp) //rp is angle to turn, pitch or roll
{
   vector3df r = nodeSydney->getRotation(); //get current rotation (euler)

   matrix4 m;
   matrix4 mp;
   m.setRotationDegrees(r); //set matrix to current rotation
   mp.setRotationDegrees(rp); //set second matrix to rotation to add
   m *= mp; //multipy them

   r = m.getRotationDegrees(); //get rotation vector from matrix (euler)
   nodeSydney->setRotation(r); //rotate node
}

Trouvée sur le forum d'irrlicht

Merci quand memesmile

( je croyais pas que c'était si compliqué pour une simple rotation )


Hors ligne


OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
101 invités en ligne
membre en ligne: -
RSS Feed