不同视角理解三维旋转

news2025/6/6 15:13:25

在二维空间中,绕任意点旋转可以分解为:

    1)平移旋转点到原点,2)绕原点旋转,3)逆平移旋转点;

    可用矩阵表示为 

    其中,

 表示绕原点旋转 

 为平移矩阵。

   在三维空间中绕任意轴旋转一个对象,可以分解为分别绕不同轴旋转一定角度。

   1 绕三维坐标轴旋转

      设 x,y,z 为三个正交方向上的单位向量,将他们构成三维空间坐标需要满足以下叉乘关系:

      

      定义绕各个坐标轴旋转方向如下图:

      

      当任意点绕 Z 轴旋转时,该点在 Z 轴上坐标保持不变,在 X,Y 轴上坐标轴上退化为二维旋转,如下图所示:

      

     由 

 得 

      由 

 得 

      最终得:  

,其中矩阵变换表示为:

      同理, 绕 X 轴旋转表示为:

,绕 Y 轴旋转表示为:

      当对任意点旋转 

 后再旋转 

,该点回到原始位置,则旋转矩阵 

 是旋转矩阵 

 得逆矩阵,观察以上旋转矩阵可知 

     2 绕过原点任意单位向量轴旋转

        当旋转轴为过原点任意轴时,可使用如下方案旋转:

        1)旋转对象使得旋转轴与某一坐标轴重合;

        2)绕该坐标轴旋转;

        3)使用逆旋转使旋转轴回到原始方向;

        使用矩阵表示为: 

        

        如上图所示,u=(a,b,c) 为任意过原点旋转轴,

。要旋转 u 使其与 z 轴重合,首先需将 u 轴旋转到 xz 平面。

        将 u 投影到 yz 平面得 

,在 yz 平面上将 

 旋转 到 z 轴的旋转角等于将 u 绕 x 轴旋转到 xz 平面。

        根据余弦定理得:

        利用向量叉乘求正弦:

        求解得:

。这里不使用 

 求解是因为该公式无法确定计算结果符号。

        使用矩阵形式表示 u 绕 x 轴旋转 

,旋转后向量为:

        

 绕 y 轴旋转到 z 轴上的旋转角余弦为:

        利用向量叉乘求正弦:

        使用矩阵形式表示 

 绕 y 轴旋转 

        当将任意单位坐标做旋转到与 z 轴重合后,使用以下矩阵完成真实旋转:

        然后使用逆旋转矩阵还原原始坐标(逆旋转矩阵为对应旋转矩阵的转置矩阵),实现绕任意过原点单位向量旋转。

    3 罗德里格斯公式

       使用罗德里格斯公式,同样可以实现绕过原点任意单位向量旋转,详细讲解在 使用罗德里格斯公式描述三维旋转_rodriguez formula的引用-CSDN博客。

       该方法最终推导出了旋转矩阵为:

       理论上来说,以上两种方案推导出的旋转矩阵应该是一致的(旋转轴与旋转角度一致情况下)。

    4 引入平移

       当旋转轴不过原点时,可以引入平移矩阵实现绕任意轴旋转。

       假设旋转轴过点 

       首先构造单位长度旋转轴向量为: 

       构造平移矩阵为:

       旋转矩阵 

 被改写为:

       旋转轴为以上单位旋转向量,从而实现了绕任意轴旋转。

       在罗德里格斯公式中,采用同样方式构造绕任意轴旋转矩阵为:

    5 四元数描述旋转

       1)四元数概念

             四元数是复数到高维扩充,定义为 

             

             将四元数表示成向量 

             定义四元数加法为 

             等价于 

             定义四元数乘法为 

             由于四元数平方和为 

,可定义四元数的逆为 

,使得 

 成立。

       2)描述旋转轴为过原点任意单位向量的旋转

             

 为旋转轴单位向量,定义 

             则任意点 p = (x,y,z) 被描述为 

,旋转后点为 

             使用公式 

 可计算出 p 点旋转后坐标 

             使用四元数计算规则可得 

             由于 

,有 

             

             引入向量 v 的叉积矩阵 

,上式可改写为:

,实现 p 到  

 旋转变换。

       3)与罗德里格斯公式关系

             令旋转轴为单位向量(x,y,z),旋转角度为 

,旋转四元数定义为 

             根据三角函数有 

             罗德里格斯公式改写为  

             由于 

,可定义 

             进一步改写罗德里格斯公式 

             最终整理结果为 

             将 

 整理成矩阵形式,其结果与罗德里格斯整理矩阵一致,因此验证了两种方式是一致的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2399355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Adobe Acrobat——设置PDF打印页面的大小

1. 打开 PDF 文件; 2. 点击菜单栏的 “文件” → “打印”; 3. 在打印对话框中,点击 “属性”; 4. 点击 “布局”→ “高级”; 5. 点击 “纸张规格”,选择 “PostScript 自定义页面大小”,然后…

Android apk装机编译类型: verify、speed-profile, speed与启动耗时

Android apk装机编译类型: verify、speed-profile, speed与启动耗时 Dex2oat (dalvik excutable file to optimized art file) ,对 dex 文件进行编译优化,Android 虚拟机可识别的是dex文件,应用运行过程如果每次都将dex文件加载内存&#xff…

使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯

使用Virtual Serial Port Drivercom2tcp或tcp2com进行两台电脑的串口通讯 问题说明解决方案方案三具体操作流程网上教程软件安装拓扑图准备工作com2tcp和tcp2com操作使用串口助手进行验证 方案三存在的问题数据错误通讯延时 问题说明 最近想进行串口通讯的一个测试&#xff0c…

数智破局·生态共生:重构全球制造新引擎 2025 WOD制造业数字化博览会即将在沪盛大启幕

共探数智化未来,共创新质生产力。2025年6月17日—19日,上海浦东新国际博览中心将迎来全球制造业数字化转型的盛会——WOD制造业数字化博览会。作为全球首个聚焦制造业数字化全场景的专业展会,本届展会以“数智破局生态共生:重构全…

BGP/MPLS IP VPN跨域解决方案

目录 MPLS VPN跨域方案出现背景: MPLS VPN回顾 VRF(Virtual Route Forward)虚拟路由转发 MPLS(Multiple Protcol Label Swtich)多协议标签交换 MP-BGP多协议BGP MPLS VPN跨域OptionA 控制平面: 转发平面: 总结: 挑战: MPLS VPN跨域OptionB 非RR场景: 控制平面: 转发…

backend 服务尝试连接 qdrant 容器,但失败了,返回 502 Bad Gateway 问题排查

遇到的问题是: backend 报错:502 Bad Gateway 来自 Qdrant → 导致接口 /api/chat 返回 500 Internal Server Error并且日志中提示: QDRANT_URL http://qdrant:6333✅ 问题分析 这个错误的根本原因是: 你的 backend 服务尝试连…

18. Qt系统相关:多线程

一、概述 在Qt中,使用QThread类对系统线程进行了封装。QThread代表一个在应用程序中可独立控制的线程,也可以和进程中的其他线程共享数据。 二、QThread常用API 三、QThread使用 自定义一个类,继承自QThread,并且只有一个线程处…

6个月Python学习计划 Day 14 - 异常处理基础( 补充学习)

第二周 Day 8 - Python 函数基础 Day 9 - 函数进阶用法 Day 10 - 模块与标准库入门 Day 11 - 列表推导式、内置函数进阶、模块封装实战 Day 12 - 字符串处理 & 文件路径操作 Day 13 - 文件操作基础 🎯 今日目标 理解异常的概念和常见异常类型掌握 try-except …

使用jstack排查CPU飙升的问题记录

最近,看到短视频传播了一个使用jstack来协助排查CPU飙升的案例。我也是比较感兴趣,参考了视频博主的流程,自己做了下对应案例的实战演练,在此,想做一下,针对相关问题模拟与排查演练的实战过程记录。 案例中…

cursor如何开启自动运行模式

在Cursor中,开启自动运行模式即启用“Yolo Mode”,具体操作如下: 按下Ctrl Shift J(Windows/Linux)或Cmd Shift J(Mac)打开Cursor设置。导航到“Features”(功能)选…

SecureCRT 设置超时自动断开连接时长

我们在使用SecureCRT 连接服务器时,经常性出现2分钟未操作已连接的服务器,就会自动断开连接,此时需要重新连接,非常影响服务器操作,本文可以很好带领大家解决这种问题。

IEC 61347-1:2015 灯控制装置安全标准详解

IEC 61347-1:2015灯控制装置安全标准详解 IEC 61347-1:2015 是国际电工委员会(IEC)发布的灯控制装置第1部分:通用要求和安全要求的核心标准,为各类照明用电子控制设备设定了全球通用的安全基准。该标准适用于独立式或内置于灯具/…

Ansys Zemax | 手机镜头设计 - 第 4 部分:用 LS-DYNA 进行冲击性能分析

附件下载 联系工作人员获取附件 该系列文章将讨论智能手机镜头模组设计的挑战,从概念和设计到制造和结构变形分析。本文是四部分系列中的第四部分,它涵盖了相机镜头的显式动态模拟,以及对光学性能的影响。使用 Ansys Mechanical 和 LS - DY…

[蓝桥杯]卡片换位

卡片换位 题目描述 你玩过华容道的游戏吗? 这是个类似的,但更简单的游戏。 看下面 3 x 2 的格子 --------- | A | * | * | --------- | B | | * | --------- 在其中放 5 张牌,其中 A 代表关羽,B 代表张飞,* …

【论文笔记】High-Resolution Representations for Labeling Pixels and Regions

【题目】:High-Resolution Representations for Labeling Pixels and Regions 【引用格式】:Sun K, Zhao Y, Jiang B, et al. High-resolution representations for labeling pixels and regions[J]. arXiv preprint arXiv:1904.04514, 2019. 【网址】…

【题解-洛谷】P9422 [蓝桥杯 2023 国 B] 合并数列

题目:P9422 [蓝桥杯 2023 国 B] 合并数列 题目描述 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案,分别将他们列为两个数组 { a 1 , a 2 , ⋯ a n } \{a_1, a_2, \cdots a_n\} {a1​,a2​,⋯an​} 和 { b 1 , …

109页PPT华为流程模块L1-L4级梳理及研发采购服务资产5级建模

华为的流程体系是其核心竞争力之一,也是其从一家小型民营企业成长为全球领先科技巨头的重要支撑。这套体系的核心思想是以客户为中心、以价值创造为导向、以流程驱动业务、持续优化改进。 下载资料请查看文章中图片右下角信息 以下是华为流程体系的关键组成部分和特…

第N1周:one-hot编码案例

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 一、one-hot编码概念 自然语言处理(NLP)中的文本数字化:文字对于计算机来说就仅仅只是一个个符号,计算…

Windows安装docker desktop

Windows 版本: Windows 10/11(64位)专业版、企业版或教育版(家庭版需手动配置)。 版本号需 ≥ 1909(建议更新到最新系统) 打开程序 启动服务后点点点 重启生效(没有的话 安装WSL…

Ros(俩不同包的节点 交流 topic message)

不同的俩节点 如chao_node 和ma_node .在俩不同的包下。 他们若想互相产生联系, 就需要靠这个关系了。 想象一下是开黑的场景 其实群名就是topic 而发送的消息就是Message。 其中主动刷屏的message的一方 就是 Publisher 而接受的那一方 就是subsciber