Ich benutze Eigen-Bibliothek, um Matrix zu Quaternion zu konvertieren, aber wenn ich eine der Matrix zu Quaternion umwandeln und es zurückbrennen, entpuppt es sich als eine andere Matrix, die Identitätsmatrix ist. Die von mir verwendete Rotationsmatrix wurde von einer Transformationsmatrix zerlegt.Eigen: Matrix zu Quaternion und zurück haben unterschiedliche Ergebnisse
Eigen::Matrix3f R3d = R.topLeftCorner<3,3>();
*Rquat = R3d;
R3d = (*Rquat).normalized().toRotationMatrix();
Was kann dieses Problem verursachen? This is the matrix before change to quaternion
und This is the matrix when I turn it back form the quaternion
Die Matrix, die Sie übergeben, ist eine Reflektion, daher können Sie keine gültige Quaternion daraus erhalten. Welche Version von Eigen verwendest du? – chtz
Ich verwende Eigen 3 – JOYD
Also Version 3.0? Das ist seit einiger Zeit veraltet ... – chtz