三维空间中的旋转与平移(一)
2023-11-27 14:34:29
三维空间的旋转与平移(一)
二维空间中的旋转和平移经常使用复数来表示。那么在三维空间中,除了矩阵和欧拉角,立体几何是否还有其他方法表示旋转呢?
为了探寻这个问题,我们首先回顾二维空间中的旋转和平移。在二维复数平面上,复数可以表示一个点的坐标,也可以表示一个旋转操作。复数的模长表示点的距离,复数的辐角表示点的角度。
复数的乘法可以表示旋转操作。给定复数 z = a + bi,复数 z 的乘法逆元为 z^{-1} = \frac{a - bi}{a^2 + b^2}。对于复数 w = c + di,有 wz = (ac - bd) + (ad + bc)i。可以看出,复数 z 的乘法逆元 z^{-1} 相当于逆时针旋转复数 w 一个角度 \theta,其中 \theta = \arg(z^{-1})。
在三维空间中,立体几何的旋转和平移可以使用四元数来表示。四元数由一个实部和三个虚部组成,可以表示为 q = w + xi + yj + zk,其中 w, x, y, z 为实数。四元数的乘法可以表示旋转操作。给定四元数 p = a + bi + cj + dk,四元数 p 的乘法逆元为 p^{-1} = \frac{a - bi - cj - dk}{a^2 + b^2 + c^2 + d^2}。对于四元数 q = f + gi + hj + ik,有 pq = (af - bg - ch - di) + (ag + bf - ci + dh)i + (ah + bg - cf + di)j + (ai + bh + cg - df)k。可以看出,四元数 p 的乘法逆元 p^{-1} 相当于逆时针旋转四元数 q 一个角度 \theta,其中 \theta = \arccos(a)。
四元数的乘法也可以表示平移操作。给定四元数 p = a + bi + cj + dk,四元数 p 的纯虚部分 v = bi + cj + dk 表示一个三维向量的平移操作。对于三维向量 v' = fi + gj + hk,有 pv' = (av - bv' - cv' - dv')i + (bv + av' - dv' + cv')j + (cv + dv' + av' - bv')k。可以看出,四元数 p 的纯虚部分 v 相当于将三维向量 v' 平移一个距离 \Vert v \Vert。
四元数的乘法还可以表示复合变换。给定四元数 p = a + bi + cj + dk 和四元数 q = f + gi + hj + ik,四元数 pq 表示先旋转四元数 q 一个角度 \theta_p,再平移一个距离 \Vert v_p \Vert,最后再旋转四元数 q 一个角度 \theta_q,其中 v_p = bi + cj + dk 为四元数 p 的纯虚部分。
四元数在三维空间中的应用非常广泛。四元数不仅可以表示旋转和平移操作,还可以表示三维刚体的运动。四元数在计算机图形学、机器人学和航空航天领域都有着重要的应用。
参考文献
[1] 张贤达. 三维空间中的四元数及其应用. 科学松鼠会. 2014-02-28.