本文主要整理自 Krasjet 的 "四元数与三维旋转" 第一章.
复数 (Complex Number) 与二维旋转的关系, 四元数 (Quaternion) 与三维旋转的关系, 二者非常相似, 因此有必要首先就前者进行讨论.
1 定义
定义形如
复数
进一步可以在复平面中表示为一个点. 复平面中, 横坐标
2 性质
2.1 复数乘法
对于两个复数
仔细观察可以发现, 复数相乘的结果也可以是一个矩阵与向量相乘的结果:
右侧的
进一步, 若将复数乘法中的复数看作一种变换, 复数乘法便可在矩阵形式下转化为矩阵乘法.
注意, 复数乘法是满足交换律的. 容易验证, 以上矩阵与向量相乘的结果也可以写为:
在矩阵形式下, 两个复数的乘积
因此, 我们可以将复数
可以验证
即使在矩阵形式下,
2.2 复数加减法与标量乘法
对于两个复数
可以发现, 复数的矩阵形式在加减运算时也是成立的:
复数的标量乘法遵循交换律, 对任意标量
进而可以得到更一般的形式:
2.3 复数的模长与共轭
对于复数
复数的共轭定义为
注意到
因此可以通过与共轭乘积的方式来计算复数的模长.
对于矩阵形式的复数
其转置也恰好对应复数共轭的矩阵形式:
进一步还能发现
3 复数乘法与二维旋转
对于一个复数
将矩阵做变形
在复平面中, 复数模长为
因此原矩阵可变形为
原矩阵变形为两个矩阵的复合, 左边的
因此复数的乘法实际上是旋转与缩放变换的复合. 一个复数
注意, 这里的旋转矩阵
根据欧拉公式 (Euler's Formula)
定义
这样便可以通过一组缩放因子
因此, 若将平面中的向量
直接通过旋转矩阵进行变换
将向量看作一个复数
, 使用复数相乘 将向量看作一个复数
, 使用极坐标形式的复数相乘
参考文献
- Krasjet. 四元数与三维旋转. https://github.com/Krasjet/quaternion
- invo. 复数的矩阵表示. https://www.cnblogs.com/invo/p/18243532