#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 meme smile

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


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
125 invités en ligne
membre en ligne: -
RSS Feed