Eigen::Matrix4f 是先旋转还是先平移的顺序

简介: Eigen::Matrix4f 是先旋转还是先平移的顺序

在使用 Eigen::Matrix4f 时,默认情况下是先进行旋转再进行平移。这是因为矩阵的构造顺序遵循标准的变换规则:

  1. 旋转:旋转矩阵是一个3x3的矩阵,用于表示旋转变换。
  2. 平移:平移是通过4x4矩阵的最后一列实现的,其中前三个元素代表平移向量。

例如,在组合变换时,如果你先应用旋转,然后应用平移,可以这样构造矩阵:

#include <iostream>
#include <Eigen/Dense>

int main() {
    Eigen::Matrix4f transform = Eigen::Matrix4f::Identity();

    // 定义旋转矩阵(绕Z轴旋转45度)
    Eigen::Matrix3f rotation;
    float angle = M_PI / 4; // 45度
    rotation << cos(angle), -sin(angle), 0,
                sin(angle),  cos(angle), 0,
                0,          0,          1;

    // 将旋转矩阵放入4x4矩阵的左上角
    transform.block<3,3>(0,0) = rotation;

    // 定义平移向量
    Eigen::Vector3f translation(1, 2, 3);

    // 将平移向量设置到4x4矩阵的最后一列
    transform(0, 3) = translation(0);
    transform(1, 3) = translation(1);
    transform(2, 3) = translation(2);

    // 输出变换矩阵
    std::cout << "Transform Matrix:\n" << transform << std::endl;

    return 0;
}


解释:

  1. 旋转矩阵:先定义一个3x3旋转矩阵并将其设置到4x4矩阵的左上角。
  2. 平移向量:定义一个平移向量,并将其放置到4x4矩阵的最后一列。
  3. 变换矩阵:最终变换矩阵中,旋转变换首先应用,然后是平移变换。


当你将一个点应用到这个变换矩阵时,矩阵乘法的顺序决定了先旋转再平移。

目录
相关文章
|
安全 关系型数据库 MySQL
|
8月前
|
监控 算法 API
用抖音电商 API 实现抖音小店商品标签精准打标
本文介绍如何利用抖音电商 API 实现商品标签精准打标,提升曝光与转化率。内容涵盖打标重要性、API 调用准备、标签自动化更新流程及最佳实践,助力商家高效运营,优化推荐效果。
529 0
|
C++
C++ PCL 计算多个RT矩阵变换后的变换矩阵
C++ PCL 计算多个RT矩阵变换后的变换矩阵
269 0
|
人工智能 自然语言处理 搜索推荐
ViDoRAG:开源多模态文档检索框架,多智能体推理+图文理解精准解析文档
ViDoRAG 是阿里巴巴通义实验室联合中国科学技术大学和上海交通大学推出的视觉文档检索增强生成框架,基于多智能体协作和动态迭代推理,显著提升复杂视觉文档的检索和生成效率。
915 8
ViDoRAG:开源多模态文档检索框架,多智能体推理+图文理解精准解析文档
基于QT实现的拷贝文件以及实时进度条(简易版)
1.基于按钮或者菜单栏的槽里去写逻辑函数(我这边用的是菜单栏),ui实现的进度条 2.创建两个对象,一个是源文件,一个是目标文件分别用getopenfileName、getsavefileName函数即可。 3.利用QFile类去实现对两个文件的创建,因为QFile中可以获取文件的属性已经读写等。 4.循环的去读取源文件中的数据,然后写入目标文件
1245 6
|
存储 人工智能 文字识别
VideoRAG:长视频理解的检索增强生成技术,支持多模态信息提取,能与任何 LVLM 兼容
VideoRAG 是一种用于长视频理解的检索增强生成技术,通过提取视频中的视觉对齐辅助文本,帮助大型视频语言模型更好地理解和处理长视频内容。
978 10
VideoRAG:长视频理解的检索增强生成技术,支持多模态信息提取,能与任何 LVLM 兼容
|
机器学习/深度学习 人工智能 自然语言处理
《驾驭随机梯度下降:C++ 实现与优化算法全解析》
本文深入探讨了随机梯度下降(SGD)及其变种优化算法在C++中的实现与应用。从SGD的基础动力,到动量法、Adagrad、RMSProp、Adadelta及Adam等算法的优化升级,文章详细解析了各算法的工作原理、实现方法及其在图像识别、自然语言处理等领域的实践案例。强调了在C++实现中,内存管理、计算效率、超参数调优及代码可扩展性的关键考量,为开发高效、精准的人工智能应用提供了坚实保障。
469 33
|
机器学习/深度学习 JSON 数据可视化
YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程
本文介绍了如何将个人数据集转换为YOLO11-pose所需的数据格式,并详细讲解了手部关键点检测的训练过程。内容涵盖数据集标注、格式转换、配置文件修改及训练参数设置,最终展示了训练结果和预测效果。适用于需要进行关键点检测的研究人员和开发者。
3354 0
|
算法 Java Go
非启发式算法——旅行商问题(TSP)及其解决算法
非启发式算法——旅行商问题(TSP)及其解决算法
1645 0
|
数据采集 监控 API
如何监控一个程序的运行情况,然后视情况将进程杀死并重启
这篇文章介绍了如何使用Python的psutil和subprocess库监控程序运行情况,并在程序异常时自动重启,包括多进程通信和使用日志文件进行断点重续的方法。

热门文章

最新文章