6 votes

Intégrer la vitesse angulaire en tant que rotation quaternaire

J'utilise (un peu à l'aveuglette) les quaternions pour les rotations dans la simulation physique des corps rigides depuis un certain temps, mais j'ai récemment commencé à être confus sur la façon dont les rotations des quaternions sont généralement définies et sur la façon dont je le fais (d'après le livre Physics for game developers).

Dans le livre, vous avez une vitesse angulaire angVel et un pas de temps dt ainsi qu'une orientation initiale.

Il se déroule comme suit

orientation += 0.5*orientation*angVel * dt

où la multiplication quaternion-vecteur est effectuée en convertissant d'abord le vecteur xyz en quaternion xyz,0

Cela fonctionne, mais partout ailleurs la procédure consiste plutôt à faire un quaternion, qui définit l'angVel intégré dans le temps, sur dt, puis à le multiplier sur l'orientation. Cela convertit essentiellement angVel*dt en une rotation (ce qui est parfaitement logique) qui est ensuite appliquée à l'orientation originale par multiplication, comme on le voit ici avec une meilleure syntaxe https://math.stackexchange.com/questions/39553/how-do-i-apply-an-angular-velocity-vector3-to-a-unit-quaternion-orientation

Ma question est de savoir ce que 0,5 * quaternion * vecteur * scalaire signifie conceptuellement es dans ce qui précède et ce que en ajoutant ce quaternion résultant à mon orientation est, considérant que vous multipliez habituellement, et non pas ajouter, pour tourner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X