描述三维矢量的空间旋转主要有三种方法:欧拉角法,轴角法以及四元数法,故首先对这个三种方法的特点进行描述与比较

1.欧拉角法:使用三个元素[α,β,γ],以及世界坐标系[Xw,Yw,Zw]来描述一个矢量在经过旋转后的空间姿态。

分析其特点:旋转不具有顺序性,且很难在某一次旋转过程中使用插值的办法进行分析

2.轴角法:  使用四个元素[x,y,z,θ]来描述每次旋转过程的转轴和转角

分析其特点:旋转具有顺序性,但很难对其进行插值,且不能直接用于与目标矢量进行计算

3.四元数法:使用四个元素[w,i,j,k]来描述一次旋转。根据其与轴角法的转换关系不难看出各元素的含义

w = cos(θ/2)
i  = x * sin(θ/2)
j  = y * sin(θ/2)
k  = z * sin(θ/2)

分析其特点:旋转具有顺序性,且可在某次旋转中使用插值的办法分析其过程,同时可直接用其进行矢量计算,

得到旋转后的目标矢量状态

四元数法描述三维旋转,该四元数实质上为四维空间上的三维超平面子集,从而实现,当出现旋转变换(及四元数矢量乘积)时,其结果仍处于三维空间内。

对一个三维矢量 f[0,x,y,z] 进行一次绕轴[wx,wy,wz]的θ角度旋转,首先根据上述变换得到去四元数 q[w,i,j,k]

则新的矢量 f'=q * f * q^(-1)

用于描述三维矢量旋转的四元数法的一点理解相关推荐

  1. C语言实现四元数的乘法(三维矢量、四元数以及旋转矢量与四元数相乘源码)

    四元数的乘法 四元数 四元数的运算 源码 四元数 在将三维矢量代数推广至乘法和除法运算的研究中,爱尔兰数学家.物理学家哈密顿于1843年创建了四元数((quaternion)和四元数代数.四元数是指由 ...

  2. 姿态解算基础知识(二)-旋转矢量坐标变换的四元数描述的验证

    姿态解算基础知识(二)-旋转矢量坐标变换的四元数描述的验证 2015-11-14 补充下四元数的知识及上篇博文提到的旋转矢量坐标变换的四元数描述的推导过程. 四元数q可以看出由一个实数和一个三维矢量组 ...

  3. C语言实现等效旋转矢量与三维矢量相乘

    等效旋转矢量与三维矢量相乘 等效旋转矢量 源码 等效旋转矢量 力学中刚体的有限次转动是不可交换的.转动的不可交换性决定了转动不是矢量,即两次以上的不同轴转动不能相加.对一个空间方向随时间变化的角速度矢 ...

  4. 三维空间里一个点绕矢量旋转后的新的点的坐标

    在三维空间里一个点绕X轴 Y轴 Z轴旋转一定弧度后新的点的坐标是容易计算的,问题是如果它所绕的旋转轴是一个任意矢量(x,y,z)的话,怎么知道旋转angle弧度后新的点的坐标呢? 在OPENGL里有一 ...

  5. 旋转——绕原点二维旋转,绕任意点的二维旋转,三维基本旋转,绕任意轴的三维旋转

    1 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移.旋转.缩放.剪切这几种.本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换. ...

  6. mysql实现线性插值法_向量之间的插值-四元数法VS.旋转矩阵法的性能比较

    问题: 3D空间中,在等长度的两个交角为theta的向量v1(x1,y1,z1),v2(x2,y2,z2)之间进行球面线性插值. 实例: 做一个行星在围绕太阳等速旋转的动画,假设只采样到旋转过程中的两 ...

  7. 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)

    矩阵的使用可参考系列博客:点击此处 原文链接:基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换. 也可以参考另一篇博客:eigen 中四元数.欧拉角.旋转矩阵.旋转向量. ...

  8. 四元数组旋转_四元数应用——顺序无关的旋转混合

    四元数系列: ----------------------------------------- 知乎首文.应@杨智为 的邀请来帮忙贡献一篇文章. 好多年不写文章了,已经不知道该怎么写了,哪里写的不好 ...

  9. 上海理工大学宣布利用人工智能实现了三维矢量全息新技术

    "顾敏主要研究领域为现代光子学,光电子成像和物理光学等.目前他本人除了是上海理工大学光电信息与计算机工程学院教授.校务委员会执行主席以及中国工程院外籍院士的身份外,顾敏也是澳大利亚科学院院士 ...

最新文章

  1. 设计模式-拦截器模式
  2. mysql 5.7解压缩_mysql 5.7.22 解压缩安装
  3. boost::function_types::is_callable_builtin用法的测试程序
  4. BOOST_TEST_TRAIT_SAME的用法实例
  5. intellij关联本地的maven的repository
  6. vite2.1 最新alias别名设置方式
  7. 自然语言处理——语言模型
  8. oracle imp 报12154错误解决办法
  9. Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别
  10. 南洋oj 题目144小珂的苦恼
  11. matlab保存超分辨率图
  12. ActiveX开发流程
  13. 第二十三篇:稳定性之服务SLA
  14. C语言printf输出百分号
  15. RecSys'22|CARCA:交叉注意力感知上下文和属性进行推荐
  16. synctoy 自动运行_安排SyncToy在Windows 7中使用Task Scheduler自动运行
  17. 《码农翻身:用故事给技术加点料》的思维导图
  18. IT(软件)企业降低运营成本的方式
  19. jit和jitx区别_JIT的核心思想是什么?
  20. 初探 MacBook Pro 刘海屏

热门文章

  1. Tableau 第七天 多边形地图和背景地图:设置地理信息(自定义地图码导入、设置地图源)
  2. 游戏引擎是什么?游戏引擎的层级架构
  3. webpack-dev-server实现静态资源加载和proxy代理
  4. Qt音视频开发42-人脸识别客户端
  5. 中国马口铁市场供需现状调研与前景趋势分析报告2022-2028年
  6. 使用Lambda Power Tuner UI节省资金并提高性能
  7. 手把手教你打造自己的简历编辑网站-编辑完后可以一键导出为PDF
  8. 使用超声波传感器采用图形化编程制作Arduino自动跟随小车
  9. FreeRTOS记录(九、一个裸机工程转FreeRTOS的实例)
  10. ai图像识别python的项目_Python3调用百度AI识别图片中的文字功能示例【测试可用】...