8
Kann ich die Eigen-Bibliothek verwenden, um die Rotationsmatrix zu erhalten, die Vektor A auf Vektor B dreht? Ich habe eine Weile gesucht, kann aber nicht verwandte API finden.Rotationsmatrix in Eigen
Kann ich die Eigen-Bibliothek verwenden, um die Rotationsmatrix zu erhalten, die Vektor A auf Vektor B dreht? Ich habe eine Weile gesucht, kann aber nicht verwandte API finden.Rotationsmatrix in Eigen
Sie müssen zuerst eine quaternion konstruieren und wandeln sie dann in eine Matrix, zum Beispiel:
#include <Eigen/Geometry>
using namespace Eigen;
int main() {
Vector3f A, B;
Matrix3f R;
R = Quaternionf().setFromTwoVectors(A,B);
}
erwähnenswert, dass dies erfordert einen zusätzlichen '.toRotationMatrix()' 'nach (A, B)' zu arbeiten, da 'R' eine Matrix ist. –
Nein, es gibt eine Überladung von operator =, die es funktioniert. Allerdings ist das jeweilige explizit, also Matrix3f R = Quaternionf(). SetFromTwoVectors (A, B); 'erfordert' .toRotationMatrix() 'oder explizite Umwandlung in eine' Matrix3f (.) ', Oder explizit den ctor aufzurufen mit 'Matrix3f R (Quaternionf(). setFromTwoVectors (A, B));' – ggael
Sorry mein Fehler! Verpasste diese leichte Subtilität. Danke für die Erklärung der Unterschiede. –