2017-10-16 7 views
1

Je convertis une matrice (M) en un quaternion afin que je puisse par exemple. lerp entre deux matrices de transformation différentes faisant une animation fluide d'une image où j'ai besoin de faire les images vidéo moi-même.Matrice à quaternion et retour ne donne pas le même résultat

Lorsque je convertis à nouveau du quaternion à une matrice comme test, cette nouvelle matrice est très loin d'être la même que celle qui est devenue le quat. Est-ce que je ne comprends pas ce que peut réellement représenter un quaternion ou le code est-il faux? Si cela ne fonctionne pas, d'autres suggestions sur la façon de se déplacer facilement entre deux matrices de transformation sont appréciées.

Python 3.6

Sortie de la console est la suivante:

TEST: M original 
    [[ 7.57403109e-01 -1.86744161e-01 1.45541734e+02] 
    [ -1.54492906e-01 6.26185286e-01 1.00878814e+02] 
    [ -2.94826495e-04 -3.44726091e-04 1.00000000e+00]] 
    TEST: quat back to mat (testM) 
    [[ 0.38627453 -0.42005089 0.8211877 ] 
    [-0.54462197 0.61466344 0.57059247] 
    [-0.74443193 -0.6676422 0.00865989]] 
    Why not the same 
    quat 
    [ 0.70880143 -0.43673539 0.55220671 -0.04393723] 
    quat of testM 
    [ 0.70880143 -0.43673539 0.55220671 -0.04393723] 
    M Scaled 
    [[ 5.20402697e-03 -1.28309699e-03 1.00000000e+00] 
    [ -1.06150244e-03 4.30244486e-03 6.93126372e-01] 
    [ -2.02571789e-06 -2.36857210e-06 6.87088145e-03]] 
    Quat of scaled 
    [[ 0.38627453 -0.42005089 0.8211877 ] 
    [-0.54462197 0.61466344 0.57059247] 
    [-0.74443193 -0.6676422 0.00865989]] 
+0

Je pense qu'il existe plusieurs transformations matricielles qui peuvent être vraies pour un seul quaternion. – visibleman

Répondre

0

Il y a des représentations de matrice multiples qui sont vraies pour un quaternion donné. L'information sur laquelle de ces représentations vous avez initialement utilisé, est perdue lorsque vous transformez votre matrice en Quaternion.

Voir par exemple. représentations matricielles en https://en.wikipedia.org/wiki/Quaternion