旋转矩阵与四元数
另一个 Blog 地址:http://insaneguy.me
原文链接:http://insaneguy.me/2015/03/25/rotation_matrix_and_quaternions/
在计算机图形学的学习中,几何变换(Transformations)是一块重要的内容,我们使用齐次坐标(Homogeneous coordinates)描述点和向量,使用变换矩阵描述平移、旋转等变换。
而在平移、旋转、缩放这几种变换中,又以旋转的情况最为复杂。实际上,计算机图形学中三维空间的旋转不仅仅有旋转矩阵一种表达形式,欧拉角(Euler angles)和四元数(Quaternions)也是常用的方法。
旋转矩阵
三维空间中的一个点 P ,我们用齐次坐标表示:
我们首先考虑分别绕 X 轴、Y 轴、Z 轴旋转一定角度的情况。

设 P 绕 X 轴、Y 轴、Z 轴的旋转角度分别为
我们使用右手坐标系,旋转角度的正向由右手定则确定。
点绕坐标轴旋转可以考虑点在相应坐标平面上投影的旋转。比如绕 Y 轴旋转,那么考虑点 P 在 X-Z 平面上的投影的旋转,如下图所示:

假设点
[x1 z1]=[cosβ −sinβsinβcosβ][x z]
用齐次坐标表示绕Y轴的旋转为:
⎡⎣⎢⎢⎢x1 y1 z1 w1⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢cosβ 0 −sinβ 00100sinβ0cosβ00001⎤⎦⎥⎥⎥⎡⎣⎢⎢⎢x y z w⎤⎦⎥⎥⎥
同理可分别得到绕X轴与绕Y轴的情况。
绕X轴旋转:
⎡⎣⎢⎢⎢x2 y2 z2 w2⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢1 0 0 00cosαsinα00−sinαcosα0


1万+

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



