通过四元数实现三维点坐标变换的原理
创作时间:
作者:
@小白创作中心
通过四元数实现三维点坐标变换的原理
引用
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. 代码实现
关于代码实现,请参考相关资料。
热门推荐
经常睡觉的房间,尽量别放这3样东西!并非迷信
宝可梦大探险:霹雳电球的进化路线与培养指南
广西容县绿荫中学:打造“劳动+资助”思政育人新范式
长期、低强度噪音暴露,或弄丢你的听力
固体电介质击穿电压的影响因素及其老化机制
寻缘相亲:如何在婚恋服务机构或平台上找到命中注定的TA
辩论技巧:如何有效反驳对方观点
凭转账记录起诉如何反驳:法律实务中的证据审查与抗辩策略
堤防、水库险情有哪些?如何巡查和发现?
股票放量不涨的技术分析:原因与应对策略
黄蓉和杨过之间复杂的情感纠葛
冬天脚冷怎么办?医生给出8个实用建议
大侠立志传悟性属性详解:如何通过悟性提升战斗力
如何理解黄金升值的影响?这些影响有哪些潜在风险?
接纳自我:通往内心幸福的关键
如何看二手显卡测试软件
空调万能遥控器使用指南及故障排查
手机上的万能遥控器怎么使用?学会了家里空调、电视控制方便了!
基金里的日涨幅是怎么算的?详细计算方法和规则解读
墙面涂料防护(墙面漆和乳胶漆有什么区别)
轻装徒步必备:揭秘性能卓越的轻量级徒步鞋选购秘籍
幸福的种子:积极情绪与消极情绪
可控核聚变与AI时代:人类是否可以退场?
明日方舟终末地剧情有哪些 明日方舟终末地主线剧情内容介绍
喀什博物馆可移动文物数字化保护项目正式上线!一起逛起来
鹏欣资源所属的行业类别是什么?这个行业类别有怎样的发展趋势?
出海企业如何应对文化差异
空气炸锅全方位指南:温度、时间与清洁技巧全解析
当短剧开始造星
美国满世界找的稀土资源,到底是个啥?