eigen库相关代码


#include 
#include 
#include "Eigen/Dense"
#include 
using namespace std;
int main() {
    Eigen::Matrix3d rotation_Matrid;//旋转矩阵
    Eigen::AngleAxisd rotation_vector(M_PI / 4, Eigen::Vector3d(0, 0, 1));//旋转向量
    Eigen::Vector3d eluerangle(2,1,0);//欧拉角
    Eigen::Quaterniond quaterniond(rotation_vector);//四元数
    Eigen::Isometry3d isometry3D_T= Eigen::Isometry3d::Identity();//欧式变换矩阵 初始化要为单位矩阵!!!!!
    Eigen::Affine3d  affine3D;//仿射变换
    Eigen::Projective3d projective3D;//射影变换

    rotation_Matrid = rotation_vector.toRotationMatrix();//旋转向量->旋转矩阵3x3
    Eigen::Vector3d eluerangle_1 = rotation_Matrid.eulerAngles(2, 1, 0);//旋转矩阵->欧拉角  ZYX旋转  2:Z轴 1:Y轴 0:X轴 (2,1,2)-> ZYZ

    Eigen::Vector3d v1(1,1,1);
    Eigen::Vector3d v_rota = rotation_Matrid * v1;//用旋转矩阵变换
    Eigen::Vector3d v_angle = rotation_vector * v1;//用旋转向量变换

    isometry3D_T.rotate(rotation_vector);
    isometry3D_T.pretranslate(Eigen::Vector3d(1, 3, 4));
    Eigen::Vector3d v_transform = isometry3D_T*v1;//v_1(世界坐标系)变换到T的坐标系下
    //cout<