|
本小节讨论的这种“其他变换-绕点旋转变换-其他变换”的思想很重要,因为有时候复杂一些的旋转变换不可能一步完成,必须使用这种旁敲侧击、化繁为简的方法,尤其是在3-D空间中,可能需要在真正做规定度数的旋转前还要做一些其他必要旋转变换,也就是要做很多次的旋转,但总体的思想还是为了把复杂的问题分成若干简单的问题去解决,而每一个简单问题都需要一个变换矩阵来完成,所以希望读者深入思考一下这种方法。
好,2-D的旋转探讨完毕。接下来,我们进入3-D空间,讨论更为复杂一些的旋转。Here We Go!
四、基础的3-D绕坐标轴方向旋转
就像2-D绕原点旋转一样,3-D的绕坐标轴旋转是3-D旋转的基础,因为其他复杂的3-D旋转最后都会化简为绕坐标轴旋转。其实,刚才我们推导出的在xoy坐标面绕o旋转的公式可以很容易的推广到3-D空间中,因为在3-D直角坐标系中,三个坐标轴两两正交,所以z轴垂直于xoy面,这样,在xoy面绕o点旋转实际上在3-D空间中就是围绕z轴旋转,如下图左所示:

这张图描述了左手系中某点在xoy、yoz、xoz面上围绕原点旋转的情况,同时也是分别围绕z、x、y坐标轴旋转。可见在3-D空间中绕坐标轴旋转相当于在相应的2-D平面中围绕原点旋转。我们用矩阵来说明:
设p(x, y, z)是3-D空间中的一点,也可以说是一个位置向量,当以上图中的坐标为准,p点所围绕的中心轴指向你的屏幕之外时,有
p绕z轴逆时针和顺时针旋转角度A分别写成:
[x y z 1] [cosA -sinA 0 0] [x y z 1] [cosA sinA 0 0] [0 1 0 0] x [sinA cosA 0 0] 和 [0 1 0 0] x [-sinA cosA 0 0] [0 0 1 0] [0 0 1 0] [0 0 1 0] [0 0 1 0] [0 0 0 1] [0 0 0 1] [0 0 0 1] [0 0 0 1]
p绕x轴逆时针和顺时针旋转角度A分别写成:
[x y z 1] [1 0 0 0] [x y z 1] [1 0 0 0] [0 1 0 0] x [0 cos -sinA 0] 和 [0 1 0 0] x [0 cosA sinA 0] [0 0 1 0] [0 sin cosA 0] [0 0 1 0] [0 -sinA cosA 0] [0 0 0 1] [0 0 0 1] [0 0 0 1] [0 0 0 1]
p绕y轴逆时针和顺时针旋转角度A分别写成:
[x y z 1] [cosA 0 sinA 0] [x y z 1] [cosA 0 -sinA 0] [0 1 0 0] x [0 1 0 0] 和 [0 1 0 0] x [0 1 0 0] [0 0 1 0] [-sinA 0 cosA 0] [0 0 1 0] [sinA 0 cosA 0] [0 0 0 1] [0 0 0 1] [0 0 0 1] [0 0 0 1]
以后我们会把它们写成这样的标准4x4方阵形式,Why?为了便于做平移变换,还记得上小节做平移时我们把2x2方阵写为3x3方阵吗?
让我们继续研究。我们再把结论推广一点,让它适用于所有和坐标轴平行的轴,具体一点,让它适用于所有和y轴平行的轴。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
|