通过四元数实现三维点坐标变换的原理
创作时间:
作者:
@小白创作中心
通过四元数实现三维点坐标变换的原理
引用
CSDN
1.
https://m.blog.csdn.net/limeigui/article/details/140253476
三维点旋转的方案
三维旋转的方案主要有以下几种:
欧拉角:简单易懂,但有万向节锁问题。在三维软件的用户界面上通常都用欧拉角表示。但是软件内部的计算过程都用四元数。
旋转矩阵:可以累乘,但有误差累计问题。
四元数:正是因为这两种表示方式的缺陷,才造就了四元数表示法的流行。
本文仅对四元数的旋转进行说明。
使用复数表示二维点的旋转
复数的概念
复数为: a + b i
复数可以表示二维点的旋转。
其中的圆是单位圆。如图,就表示点或向量绕着原点旋转了θ (theta)角度。可以把图中的二维坐标(a,b)写成一个复数:
复数的三种形式及相互转换
- 代数形式
- 三角形式
- 指数形式
复数概念扩展:实数、虚数、复数
四元数旋转三维点原理
四元数就是四个数。它是复数的推广。
四元数则多了两个虚部: q = w + (ai + bj + ck) , 其中i,j,k都是虚数。所以:
四元数可以表示三维单位球面上的一个点(或者说是一个单位方向向量)的旋转:
这就表示绕着一个轴(a,b,c)(它是个单位向量)旋转θ (theta)角度。
使用四元数进行旋转的公式
使用四元数进行旋转的公式如下(结果为一个新的四元数):
假设有四元数q : q = w + (ai + bj + ck) , 那么四元数的逆的公式为:
这就是实部不变,虚部加个负号而已!
以试验一下,它是否符合逆的概念,也就是:
注意:如果q没有归一化,那么q的逆只需要再除以模的平方:
旋转叠加
四元数也像旋转矩阵那样能够累乘!比如先旋转q1,再旋转q2:
四元数转换为三维点
旋转之后,怎么得到三维的点坐标呢?
我们只需要把实部抛弃(或者写成0),虚部的三个值恰好就是一个三维点的坐标。
也就是说:( 0 , x i + y j + z k )
恰好就是三维点:( x , y , z )
代码实现
关于代码实现,请参考下一篇文章:《Eigen C++ 代码实现三维点的旋转》
热门推荐
白色洋桔梗花语:纯洁与纯爱的象征
数学中的极值
医生解读:女人长期吃猪鞭的营养价值与功效
C++为什么要引入智能指针?
花甲的选购方法
认识中药:黄芪被称为千年补气圣品,它有哪些现代养生密码?
石橄榄炖鸡汤的做法(健康营养的家常美食)
Git代码提交规范详解:feat、fix、chore等常见前缀的含义
外科手术安全大揭秘:禁食禁饮,你真的了解它的重要性吗?
除湿机抽湿后怎么办?这份处理和保养指南请收好
鸡吃草的那些营养会比吸收长肉
旅游不是说到处瞎跑,给你推荐这三个地方!体验感不好你打我。
防盗门有风就响怎么办?专家教你解决之道
防盗门合页调整与修复技巧
全球市场如何影响本地金价?这种影响如何进行市场了解?
创业者选择注册地址的四大注意事项
如何办理公积金相关事务并了解其使用规则?
热食保温瓶和保温饭盒使用及选购全攻略
如何在房产市场中明确目标?这个目标怎样影响购买行为?
给“扮演蒋介石”的10位演员排座次:王劲松第9,陈道明第8
自学新媒体运营,从入门到精通的完整指南
薄荷脑:从提取到应用的全面解析
投资白银需要关注哪些全球经济因素
如何分析市场现状及其影响因素
洋桔梗、桔梗、玫瑰的区别,洋桔梗怎么养?
洋桔梗花语及种植方法详解(洋桔梗的品种特点与养护技巧)
热刺与水晶宫的对决,英超联赛中的战术较量与球员表现
年满16岁如何脱离父母监护
集体下跌!“关税风暴”冲击将至,美国“滞胀”阴云笼罩
节后市场回暖 深圳楼市“小阳春”渐行渐近