Я использую Eigen 3.3.7 и его кватернионы для выполнения преобразований на множестве векторов.
Мне нужно было выполнить произведение кватерниона (это может быть нулевой кватернион) с вектором , Проблема заключается в том, что когда кватернион равен нулю кватерниона (нулевая действительная и векторная части), возвращаемое значение является самим вектором.
Что я понял из определения произведения Гамильтона, так это то, что, если кватернион является нулевым кватернионом, произведение должно возвращать нулевой вектор. Я ошибаюсь?
Следующий фрагмент показывает проблему, я ожидал, что вектор sv
будет нулевым, но это не так. Это ошибка?
Eigen::Quaterniond q{0.0, 0.0, 0.0, 0.0};
Eigen::Vector3d v{1.0, 2.0, 3.0};
auto sv = q * v;
Приветствия и спасибо.