矩阵运算------矩阵旋转

来源:互联网 发布:java case switch 编辑:程序博客网 时间:2024/04/30 22:40

以下不加证明地给出在世界坐标系中,以坐标点(0,0,0)为原点的旋转矩阵

 

 

包含平移的线性变换称作仿射变换,3D中的仿射变换不能用 3 x 3 矩阵表达,必须使用4 x 4矩阵

1.绕X坐标轴旋转

|1      0          0       0|

|0   cos(a)   sin(a)  0|

|0  -sin(a)  cos(a)   0|

|0      0          0       1|

 

 

 

2.绕Y坐标轴旋转

|cos(a)   0   -sin(a) 0|

|0           1   sin(a)  0|

|sin(a)   0  cos(a)   0|

|0          0     0       1|

 

 

 

3.绕Z坐标轴旋转

|cos(a)   sin(a)   0   0|

|-sin(a)  cos(a)   1   0|

|0           0          1   0|

|0           0          0   1|

 

 

4.绕任意向量n(x,y,z)旋转a角度

|x*x(1-cos(a)+cos(a)      xy(1-cos(a))+zsin(a)       xz(1-cos(a))-ysin(a)       0|

|xy(1-cos(a))-zsin(a)       y*y(1-cos(a))+cos(a)     yz(1-cos(a))+xsin(a)       0|

|xz(1-cos(a))+ysin(a)      yz(1-cos(a))-xsin(a)      z*z(1-cos(a))+cos(a)       0|

|0                                    0                                    0                                   1|