如何使用 Eigen Libary 从旋转矩阵确定轴角度

B. *_*ung 2 c++ transformation rotation matrix eigen

Eigen 库支持使用轴角参数创建矩阵。你如何执行相反的操作并从矩阵中确定轴角(我对欧拉集不感兴趣,只是一个轴角结果)。

Avi*_*urg 8

Eigen 提供了一个AngleAxis将矩阵作为参数的构造函数。所以,它很简单:

#include <iostream>
#include <Eigen/Core>
#include <Eigen/Geometry>


int main()
{
    Eigen::Vector3d axis;
    axis.setRandom();
    std::cout << axis << "\n\n";
    axis.normalize();
    std::cout << axis << "\n\n";

    Eigen::Matrix3d mat;
    mat = Eigen::AngleAxisd(0.256, axis);

    Eigen::AngleAxisd newAngleAxis(mat);

    std::cout << newAngleAxis.angle() << "\n" << newAngleAxis.axis() << "\n\n";

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

哪些输出:

-0.997497
0.127171
-0.613392

-0.846852
0.107965
-0.520755

0.256
-0.846852
0.107965
-0.520755

或类似的东西。