2016-02-02 62 views

回答

2

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; 

} 

,輸出:

-0.997497
0.127171
-0.613392

-0.846852
0.107965
-0.520755

0.256
-0.846852
0.107965
-0.520755

或類似的東西。