四元数学习之四元数和矩阵的转换
四元数是一种可以替代矩阵和欧拉角的数学工具。他最初是由William Rowan Hamilton发现的(参考维基百科),它的最大的特点是不满足交换率。也谈一下自己对这一点的体会。在离散数学中有讲到半群、群、环和域的概念,其中环的定义是具有交换率和分配率(详情参考环的数学定义),而域的概念则是在环的基础上加上了交换率。所以说四元数无法满足域的定义,它是除法环的一种。何为除法环?其实很简单,被除数和除数都满足结合律和分配律,但是如果要满足交换律,即被除数和除数交换位置,那么它的结果是不同的(准确地说,如果它们不为0的话,那么结果呈倒数关系)。又由于要在四维解空间上解得i3=-1,所以只能在不满足交换率的条件下得出i、j、k。
四元数在计算机图形学的优势在于运算量小和利于插值,且旋转没有缺陷。可是普通的一个四元数定义又比较难懂,而且OpenGL的API中又没有带四元数的参数的函数,所以需要我们根据公式做一做小小的转换。

本文探讨四元数作为替代矩阵和欧拉角的数学工具,解释四元数不满足交换率的原因,并讨论其在计算机图形学中的优势。通过公式推导,展示了如何将四元数转换为旋转矩阵,并通过OpenGL进行验证。最后,提供了实现四元数运算的简单类及其使用示例。
最低0.47元/天 解锁文章
8991

被折叠的 条评论
为什么被折叠?



