8
Могу ли я использовать библиотеку Eigen для получения матрицы вращения, которая вращает вектор A на вектор B? Я искал какое-то время, но не могу найти связанный api.Матрица вращения в Eigen
Могу ли я использовать библиотеку Eigen для получения матрицы вращения, которая вращает вектор A на вектор B? Я искал какое-то время, но не могу найти связанный api.Матрица вращения в Eigen
Сначала нужно построить quaternion, а затем преобразовать его в матрицу, например:
#include <Eigen/Geometry>
using namespace Eigen;
int main() {
Vector3f A, B;
Matrix3f R;
R = Quaternionf().setFromTwoVectors(A,B);
}
Стоит отметить, что это требует дополнительного '.toRotationMatrix()' после '(A, B)' в работа, так как «R» является матрицей. –
Нет, есть перегрузка оператора =, что заставляет его работать. Тем не менее, соответствующий явный, поэтому 'Matrix3f R = Quaternionf(). SetFromTwoVectors (A, B);' требует '.toRotationMatrix()' или явного приведения в 'Matrix3f (.)' Или явно вызвать ctor с 'Matrix3f R (Quaternionf(). setFromTwoVectors (A, B));' – ggael
Извините, моя ошибка! Пропустил эту небольшую тонкость. Спасибо за объяснение различий. –