当前位置: 首页 > article >正文

不同视角理解三维旋转

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

    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.lryc.cn/news/2399355.html

相关文章:

  • Adobe Acrobat——设置PDF打印页面的大小
  • Android apk装机编译类型: verify、speed-profile, speed与启动耗时
  • 纹理压缩格式优化
  • 使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯
  • 【从0-1的HTML】第3篇:html引入css的3种方式
  • 数智破局·生态共生:重构全球制造新引擎 2025 WOD制造业数字化博览会即将在沪盛大启幕
  • machine_env_loader must have been assigned before creating ssh child instance
  • BGP/MPLS IP VPN跨域解决方案
  • C语言-10.字符串
  • backend 服务尝试连接 qdrant 容器,但失败了,返回 502 Bad Gateway 问题排查
  • 硬件学习笔记--66 MCU的DMA简介
  • 18. Qt系统相关:多线程
  • 6个月Python学习计划 Day 14 - 异常处理基础( 补充学习)
  • 使用jstack排查CPU飙升的问题记录
  • cursor如何开启自动运行模式
  • SecureCRT 设置超时自动断开连接时长
  • 《复制粘贴的奇迹:原型模式》
  • IEC 61347-1:2015 灯控制装置安全标准详解
  • Ansys Zemax | 手机镜头设计 - 第 4 部分:用 LS-DYNA 进行冲击性能分析
  • [蓝桥杯]实现选择排序
  • [蓝桥杯]卡片换位
  • 【论文笔记】High-Resolution Representations for Labeling Pixels and Regions
  • 【题解-洛谷】P9422 [蓝桥杯 2023 国 B] 合并数列
  • 在MATLAB中,`mean(P_train, 2)` 的含义
  • 开源模型应用落地-OpenAI Agents SDK-集成Qwen3-8B(一)
  • 109页PPT华为流程模块L1-L4级梳理及研发采购服务资产5级建模
  • 第N1周:one-hot编码案例
  • Windows安装docker desktop
  • Ros(俩不同包的节点 交流 topic message)
  • 李沐《动手学深度学习》 | 数值稳定性