Appearance
4.4.3 四元数的应用
4.4.3.1 计算机绘图学中的 旋转
为了刻画运动流,需要利用旋转的插值. 因为
1. Lerp(线性 (l) 插值 (erp))
设
这是
中的一条连接 和 的线段. 这条线段是
中单位球的内部,并且不表示单位球 上的任何连通曲线. 因此旋转由所求得的四元数的规范化确定.
这个简单的算法几乎是完美的. 仅有的问题是在通过给定点和规范化了的所求得的四元数之间的割线上求得插值点后, 所得到的单位四元数不是等距四元数. 这个问题可以用下列算法解决.
2. Slerp(球面 (s) 线性 (l) 插值 (erp))
设
沿着单位球
上的大圆插值,连接 和 . 选取最短连接,
必须成立 (此处 表示 和 的点积).
在图 4.5 中比较了依据 Lerp(见图 4.5(a)) 和 Slerp(见图 4.5(b)) 的插值.

特殊情形
特殊情形等距网格 令
(4.146)
Slerp插值的解释 为证明 (4.144) 中两个表达式的等价性,首先算出
因为
由此得到
3. Squad(球面 (s) 和四角形 (quad) 插值)
对于
其中
所得曲线类似于贝济埃 (Bézier) 曲线, 代替线性插值, 它保持了球面插值.
算法产生了对于四元数序列
的插值曲线. 在第一个和最后一个区间表达式未被定义,因为
对于计算 ,以及 对于计算 是必须的. 一个可能的方法是选取 以及 (或者定义 和 ). 还有其他的基于四元数的算法: nlerp, log-lerp, islerp,四元数德卡斯特里奥 (de Casteeljau) 样条.
4.4.3.2 旋转矩阵的插值
可以借助旋转矩阵完全类似地刻画 Slerp 算法.
一般地说, 应用四元数基本算法并且依据单位四元数转换为旋转矩阵的计算, 由四元数
4.4.3.3 球极平面投影
如果将
分别映为纯四元数或
4.4.3.4 卫星导航
环绕地球运行的人造卫星的航向是已经确定的. 恒星看作在无穷远处, 于是它们相对于地球和相对于卫星的方向是相同的 (图 4.6). 任何测量上的差别都可从不同的坐标系推导出来, 因而也可由不同坐标系的相对旋转推出.

设
如果考虑另一个恒星, 并且数据被测量误差覆盖, 那么解可以用最小二乘法, 即作为 (4.154) 的极小值确定,其中
因为单位四元数群
从
确定. 这里
因为这里
时为零. 设
对于任何向量
由这个关系式可确定极小值问题的临界点:
其中
并且
显然是一个解; 因为在这种情形,由于
其中
看出
使得
其中
4.4.3.5 向量分析
如果将算子
其中
(还可参见第 389 页 4.4.1.1,4. 中
及
代入, 则有
特别,对于任何二次连续可微函数
以及
其中
其中
4.4.3.6 规范化四元数和刚体运动
1. 八元数
一个八元数
这里
2. 刚体运动
在
刻画刚体运动 (旋转和平移相互交替) (表 4.1).
表 4.1 用八元数表示刚体运动
元素 | 表示 |
空间中点 | |
旋转 | |
平移 |
因为
给出