#include <Eigen/Geometry>
int main() {
// 定义一个旋转矩阵
Eigen::Matrix3d rotation_matrix;
rotation_matrix = Eigen::AngleAxisd(M_PI / 4, Eigen::Vector3d(0, 0, 1));
// 定义一个平移向量
Eigen::Vector3d translation_vector(1, 2, 3);
// 创建一个Isometry3d类型的变换矩阵,并将旋转矩阵和平移向量赋值给它
Eigen::Isometry3d transformation_matrix = Eigen::Isometry3d::Identity();
transformation_matrix.linear() = rotation_matrix;
transformation_matrix.translation() = translation_vector;
// 打印变换矩阵
std::cout << "Transformation Matrix:\n" << transformation_matrix.matrix() << std::endl;
return 0;
}
以前的这种方法不能叫赋值,个人不建议使用,可能导致错误。
eigen 构造变换矩阵(Eigen::Isometry3d或者Eigen::Matrix4d)的几种方式-CSDN博客
十四讲里的代码是这样的