cs_supergrey
Messages postés475Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention20 septembre 2010
-
29 déc. 2004 à 16:43
zoom1984
Messages postés17Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention26 février 2005
-
26 févr. 2005 à 02:50
Bonjour, je voudrais pouvoir appliqué a un objet différentes rotations et translations étant soumises a inertie.
J'ai donc créé des matrices pour recevoir les mouvement:
-mat0 : contient la position en translation
-mat1 : contient la position en rotation
-mat2 : contient l'inertie en translation
-mat3 : contient l'inertie en rotation
Ainsi, a chaque frame mat0 subit mat2 et mat1 subit mat3 grace a D3DXMatrixMultiply(), puis japplique a l'objet la matrice résultant des transformation mat2 puis mat0. Ca marche presque...
Le probleme c'est que les transformation "s'accumule" dans mat0 et mat1 et que petit à petit l'objet se déforme, donc je voudrais savoir comment maintenir les facteur de "scaling" à un pour empécher les déformations.
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 29 déc. 2004 à 19:15
A mon avis le problème est au niveau mathématique et mécanique car je ne comprends pas bien la façon dont tu as posé le problème.
Je ne vois pas comment ton algo peut fonctionner. Tu parles d'inerties, mais pas de forces, de positions, mais pas d'intervalles de temps...
Je ne vois pas du tout comment exploiter le resultat de la multiplication d'une matrice d'inertie par une matrice de position....
A vrai dire, je en comprend pas bien le terme "matrice de position".
Le PFD:
Somme_des_forces = masse*acceleration_translation
Somme_des_couples = inertie*acceleration_angulaire
zoom1984
Messages postés17Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention26 février 2005 26 févr. 2005 à 02:50
N'utilise pas des matrices mais des quaternions ( que tu peux
normaliser ) pour les rotations et des vecteurs ( pour les translations
). Transforme le tout en matrices au moment où tu en as besoin.