Rotation - 旋转

  • 1. 二维空间中的旋转
    • 1.1 旋转矩阵
    • 1.2 复数坐标
  • 2. 三维空间中的旋转
    • 2.1 旋转矩阵
    • 2.2 四元数(quaternion)

几种旋转方式的实现。

1. 二维空间中的旋转

假设平面内任意一点的坐标是 (x,y),绕坐标原点逆时针旋转的角度是 θ,旋转后的坐标(x^\hat xx^,y^\hat yy^​),有以下几种方法来计算旋转后的坐标:

1.1 旋转矩阵

1.2 复数坐标

2. 三维空间中的旋转

2.1 旋转矩阵

按照右手螺旋法则,拇指指向轴的方向,其它指头的方向即为旋转方向。绕每个轴旋转的旋转矩阵分别为:



如果可以将一个旋转分解为绕三个轴分别旋转的效果的叠加,则旋转后的坐标为:

2.2 四元数(quaternion)

虽然任意一个旋转都可以转换为绕xyz三个轴的旋转,但这个转换可能不是很方便。很多情况下,希望知道如何计算绕任意轴旋转任意角度的问题。这个时候,四元组就很方便。

内容可参考:
https://eater.net/quaternions
https://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3DzjMuIxRvygQ

https://blog.csdn.net/MOU_IT/article/details/80369043?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
四元数介绍:






四元数表示姿态矩阵:
个坐标系到另一个坐标系的旋转,除了可以分解为绕坐标系中的Z轴、Y轴、X轴旋转三次得到外,旋转的一个神奇之处就在于,三维空间的任意旋转,都可以用绕三维空间的某个轴旋转过某个角度来表示,即所谓的Axis-Angle表示方法。这种表示方法里,Axis可用一个三维向量(x,y,z)来表示,θ可以用一个角度值来表示,直观来讲,一个四维向量(θ,x,y,z)就可以表示出三维空间任意的旋转。注意,这里的三维向量(x,y,z)只是用来表示axis的方向朝向,因此更紧凑的表示方式是用一个单位向量来表示方向axis,而用该三维向量的长度来表示角度值θ。这样以来,可以用一个三维向量(θx, θy, θ*z)就可以表示出三维空间任意的旋转,前提是其中(x,y,z)是单位向量。这就是旋转向量(Rotation Vector)的表示方式。

Axis-Angle的表示方法还可以推导出另一种很常用的三维旋转表示方法,叫四元数(Quaternion),具体的证明参考秦永元的《惯性导航》。同上,假设(x,y,z)是axis方向的单位向量,θ是绕axis转过的角度,那么四元数可以表示为[cos(θ/2), xsin(θ/2), ysin(θ/2), z*sin(θ/2)]。注意,这里可以推导出,用于表示旋转的四元数向量也必须是单位向量。四元数的神奇之处在于,对于三维坐标的旋转,可以通过四元数乘法直接操作,与上述旋转矩阵操作可以等价,但是表示方式更加紧凑,计算量也可以小一些。捷联惯导中的姿态更新实质上是如何计算四元数Q。


其中R代表地理坐标系,b代表机体坐标系,u是R系中一个旋转向量(单位向量),机体绕着这个旋转向量旋转,θ表示转过的角度。


这就是用四元数表示姿态矩阵

参考:https://zhuanlan.zhihu.com/p/86387799

Rotation - 旋转相关推荐

  1. unity引擎之Rotation旋转

    一.Unity中的Rotation 在unity中,旋转的表示的常用方法之一,是一个三维向量(x.y.z): 图1.Unity中的旋转 实际上这是欧拉角.这三个分量分别是绕x轴.y轴.z轴旋转的角度. ...

  2. Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路...

     Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路 先看一看我的代码运行结果. 代码运行起来初始化状态: 点击开始按钮,唱片机的机械臂匀速接近唱片磁盘,同时唱片磁盘也 ...

  3. png文件合并_程序员学习之在Python中使用PDF:阅读、旋转、合并和拆分

    私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包. PDF 文档格式 今天,可移植文档格式(PDF)属于最常用的数据格式. 1990年,Adobe定义了PDF文档格式. PDF格式背后的 ...

  4. 浅谈Unity中的rotation和Quaternion的乘法

    动手写游戏以后一个比较切身的体会,就是实际操作能检验很多语言的细节,也许平时看API文档,或者看一些教程的时候并没有深刻的体会,因为大多情况下你只知道了该怎么做,却不知道为什么要这么做,或者怎么想到这 ...

  5. 关于3dmax模型导入到u3d中时,坐标会旋转的问题

    最近很多新人询问Max导入Unity遗留的旋转角度问题,具体方法发个帖备份下以方便新人查找. 首先使用Maya建模的左手坐标系软件可以略过~ 其实方法很简单,在Max中 以模型的本地坐标X轴为旋转轴 ...

  6. iOS:图片的旋转方向问题

    [你知道吗?]iOS 6 默认相机程序让你的 iPhone 照片自带方向信息 可能几乎很少的人会知道在 iOS 6中有一项新的功能是用 iPhone 拍出的照片会记录该照片的方向信息. 在 iPhon ...

  7. UE4 虚幻引擎,3D数学(二),3D嵌套坐标系。Relative相对位置与World世界位置,Relative相对旋转与World世界坐标旋转。

    在UE4虚幻引擎中,常见的嵌套坐标系有Skeletal骨骼,以及嵌套多节点(子节点,父节点)Actor.本文中,以嵌套多节点Actor为例. Skeletal骨骼,嵌套坐标系. 1.Relative相 ...

  8. 基于QGraphicsView、QGraphicsScene、自定义QGraphicsItem的小demo(正矩形、旋转矩形及圆形)

    网上有很多关于这三个的资料,这方面的功能不做过多的描述,仅仅将在做小Demo过程中遇到的问题做下记录,下面是Demo的界面图: Demo的初衷是不想每次使用QGraphicsView和QGraphic ...

  9. 计算机图形学一:基础变换矩阵总结(缩放,旋转,位移)

    变换矩阵总结 摘要 1 2D线性变换 1.1 缩放(scaling) 1.2 剪切(shearing) 1.3 旋转(rotation) 2 3D线性变换 2.1 3维缩放(scaling),剪切(s ...

  10. Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理

    Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理 目录 Unity 基础 之 鼠标控制 相机(摄像机Camera)的旋转,移动和 fov 的简单使用整理 ...

最新文章

  1. Python网络爬虫与信息提取(一)(入门篇)
  2. uboot流程——uboot启动流程
  3. 二进制安装部署 4 kubernetes集群---超详细教程
  4. 计算机科学导论实验考试,计算机科学导论实验指导书
  5. lr java脚本_【上海校区】 LR Java脚本编写方法
  6. 春天重试,因为冬天来了
  7. php将文件夹压缩成zip文件,将文件夹压缩成zip文件的php代码_php实例
  8. 从JDK中,我们能学到哪些设计模式?
  9. Python格式化输出--%s,%d,%f
  10. vue-cli+webpack项目,修改项目名称
  11. 前台JS事件与服务器事件的执行顺序
  12. Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
  13. 股市舆情情感分类可视化系统
  14. 企业注册一站式服务平台公司宝App挂牌新三板
  15. iOS 处理pfx文件
  16. ipad和iphone横竖屏设置
  17. Android模拟器不支持蓝牙
  18. logoff user in window 2008
  19. 非计算机专业二级c语言,2017年计算机二级C语言基本知识
  20. 心流:最优体验心理学-米哈里·契克森米哈赖

热门文章

  1. 完爆面试官!2021Java高频精选面试题讲解
  2. 手机详情 html代码生成器,dede源码最新版手机移动端静态生成模块插件
  3. 《一个人的朝圣》的读后感作文3100字
  4. 2021“西湖论剑“网络安全大赛Writeup
  5. cpu倍频模式怎么调_BIOS:增加倍频比率调整选项
  6. 最新个人发卡网系统源码-全开源版
  7. [Paper Reading]开始写Paper Reading Report
  8. python 战棋游戏代码实现(1):生物行走和攻击选择
  9. Life:怎样提高睡眠质量?
  10. 如何利用COOC生成动态排名变化利器可识别的数据格式