通过四元数实现三维点坐标变换的原理
创作时间:
作者:
@小白创作中心
通过四元数实现三维点坐标变换的原理
引用
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++ 代码实现三维点的旋转》
热门推荐
汽车报废补贴翻倍 有人非法兜售补贴名额
河北最“贫穷”的5个城市:邢台第1,张家口第4,衡水入围!
新谍战剧的影像探索与类型深耕
冯玉祥逼宫,溥仪一夜成平民
上饶冬游攻略:三清山、婺源和鄱阳湖的冰雪奇缘
婺源:一座活着的传统文化博物馆
守护"涂料之王":中国南方漆树生态系统的保护与传承
生漆新潮流:从古至今的自然涂料传奇
马未都说:漆树如何养育中华文明?
宜宾翠屏火车站停车攻略大揭秘
宜宾高铁直达九寨沟!周末游川西不再是梦
高铁游正热!宜宾站最新交通攻略
宜宾未来一周阴雨绵绵,这些保暖小贴士请收好!
黟县的新中式慢生活:黄山,除了黄山还有什么?
1996年属鼠还是属猪?火鼠命性格特点与2024年运势全解析
1996年属鼠人的2025蛇年运势大揭秘
1996年生肖鼠的星座运势大揭秘!
1996年鼠年:你的本命年运势大揭秘!
1996年属鼠人2024年运势全解析:事业有成,桃花运旺!
心理健康预防流感
芹菜籽可以降血压吗?医生的专业解答来了
西芹炒牛肉
最好的10个“抗老”方法,新的一年实现轻松抗衰!
美国航空事故:客机与军机相撞致18人遇难 救援仍在进行
揭秘2025年央视春晚:于蕾如何玩转非遗元素?
吃货必备!揭秘扣肉的美味秘诀
2024敦煌戈壁108km徒步攻略详解
冬雪奇景之旅:九寨沟与漠河北极村的梦幻赏雪攻略
杨宗纬《原色》:一首歌,一段情,一份执着
杨宗纬罗嘉豪央视春晚再聚首!澳门新生代歌手的闪耀时刻