通过四元数实现三维点坐标变换的原理
创作时间:
作者:
@小白创作中心
通过四元数实现三维点坐标变换的原理
引用
CSDN
1.
https://blog.csdn.net/limeigui/article/details/140253476
四元数是计算机图形学和三维空间变换中的重要工具,它能够有效地解决三维旋转中的万向节锁问题。本文将从复数的概念出发,逐步介绍四元数的定义及其在三维旋转中的应用原理。
1. 三维点旋转的方案
三维旋转的方案主要有以下几种:
欧拉角:简单易懂,但有万向节锁问题。在三维软件的用户界面上通常都用欧拉角表示。但是软件内部的计算过程都用四元数。
旋转矩阵:可以累乘,但有误差累计问题。
四元数:正是因为这两种表示方式的缺陷,才造就了四元数表示法的流行。
本文仅对四元数的旋转进行说明。
2. 使用复数表示二维点的旋转
2.1. 复数的概念
复数为: a + b i
复数可以表示二维点的旋转。
其中的圆是单位圆。如图,就表示点或向量绕着原点旋转了θ (theta)角度。可以把图中的二维坐标(a,b)写成一个复数:
2.2. 复数的三种形式及相互转换
- 代数形式
- 三角形式
- 指数形式
2.3. 复数概念扩展:实数、虚数、复数
3. 四元数旋转三维点原理
四元数就是四个数。它是复数的推广。
四元数则多了两个虚部: q = w + (ai + bj + ck) , 其中i,j,k都是虚数。所以:
四元数可以表示三维单位球面上的一个点(或者说是一个单位方向向量)的旋转:
这就表示绕着一个轴(a,b,c)(它是个单位向量)旋转θ (theta)角度。
4. 使用四元数进行旋转的公式
使用四元数进行旋转的公式如下(结果为一个新的四元数):
假设有四元数q : q = w + (ai + bj + ck) , 那么四元数的逆的公式为:
这就是实部不变,虚部加个负号而已!
以试验一下,它是否符合逆的概念,也就是:
注意:如果q没有归一化,那么q的逆只需要再除以模的平方:
5. 旋转叠加
四元数也像旋转矩阵那样能够累乘!比如先旋转q1,再旋转q2:
6. 四元数转换为三维点
旋转之后,怎么得到三维的点坐标呢?
我们只需要把实部抛弃(或者写成0),虚部的三个值恰好就是一个三维点的坐标。
也就是说:( 0 , x i + y j + z k )
恰好就是三维点:( x , y , z )
7. 代码实现
关于代码实现,请参考相关资料。
热门推荐
购买电动车时的选择标准是什么?如何根据需求挑选合适的电动车?
少吃+多动,反而会损害免疫系统,降低运动表现!且后续难恢复,尤其是这类人
华语乐坛90年代当红女歌手,谁最符合你的审美?
2024年度A股IPO融资报告:融资额和新股数齐创十年冰点
【投资论】成功投资者看世界的十个角度
在线法律咨询迷茫?资深律师为您指点迷津
全面了解APN设置:概念、步骤与常见问题解决指南
什么是APN?如何配置?
情人节的诗句咋写呀
如何编写AI绘图描述语才能生成一幅让人满意的作品
面对严峻的灾荒,元朝是如何抗灾救灾的?
黄金有什么风险?怎样应对黄金投资中的风险因素?
怎么防止眼睛度数加深
六大奖项集一身,诺贝尔奖擦肩而过,传奇“核司令”程开甲有多牛
岭南春季湿气重,分享几味常用祛湿中药
Windows系统隐藏功能大公开:快捷键与操作技巧全面指南
健身器材全解析:跑步机、哑铃、瑜伽垫购买建议及使用心得。
精氨酸:提升运动表现、心血管健康和免疫力的营养素
本地大模型部署指南:Ollama+Llama3.2从入门到API调用
揭阳三日游:古城文化与自然风光的完美邂逅
服务陷入停滞,艾滋病防治成果面临风险
铃兰花语与代表意义——美丽与希望的象征
近视手术适应人群全解析:从年龄到心理素质,你是否适合手术?
舒缓安神助眠茶有哪些?喝什么茶有助于睡眠
加密基金101:资金费套利策略
论文引用该如何标注才不会被查重?
老是“天旋地转”?可能是耳朵出了问题!
周成刚:如何培养创造性与批判性思维
龙珠 | 比克:从邪恶大魔王到“孙家保姆”的蜕变
以科技创新促进产业体系的完整性先进性安全性