Кросс-продуктовая матрица в Eigen
Есть ли готовая функция или метод в Eigen для оператора Hat? Это оператор, возвращающий матрицу, которая имитирует кросс-продукт с этим вектором. Я знаю, что его можно легко написать, но хотелось бы избежать этого:
Eigen::Vector3d t = // some vector ;
Eigen::Matrix3d t_hat;
t_hat << 0, -t(2), t(1),
t(2), 0, -t(0),
-t(1), t(0), 0;
Ответы
Ответ 1
Как вы отметили cross и cross3 методы фактически выполняют умножение. Но вы хотите сделать кососимметричную матрицу в виде t
.
То, что вам кажется лучшим, можно сделать для Vector3d
и Matrix3d
. Обобщение для различных типов t
потребует больше времени, чем сейчас, но это интересный вопрос, поэтому я могу исследовать его позже.