三维空间旋转矩阵的推导和表示方法——程序员常用数学

来源:互联网 发布:网络推广的好处 编辑:程序博客网 时间:2024/06/10 00:29
我们知道绕坐标轴旋转的变换矩阵为:
(1)绕Z轴旋转  x' = xcost - ysint
                            y' = xsint + ycost
                            z' = z  
                    

 


 
(2)绕X轴旋转  y' = ycost - zsint
                            z' = ysint + zcost
                            x' = x

 


 
(3) 绕Y轴旋转 z' = zcost - xsint
                       x' = zsint + xcost
                       y' = y
 

 


假设让一个向量绕x轴旋转t度,我们知道绕x轴旋转的旋转矩阵如下:


1     0       0      0

0   cost   sint   0

0  -sint   cost   0

0      0      0      1



那么,它是怎么来的呢?
现在假设我们想让P1绕x轴旋转t度到达P2。我们沿着x轴指向原点方向观察时,情况如下:
P0是当P1与y轴重合时的向量,假设P0旋转至P1为r度,那么很明显,P1的值为y1 = r*cosr,z1 = r*sinr。
而现在我们是要把P1旋转t度至P2,那么同理,P0旋转r+t度也至P2,那么P2的值为y2 = r*cos(r+t),z2 = r*sin(r+t)。
我们把P2的值展开看看,y2 = r*(cosr*cost - sinr*sint),z2 = r*(sinr*cost + cosr*sint),因为P1的值y1 = r*cosr,z1 = r*sinr,所以cosr = y1/r,sinr = z1/r,代入P2的值,得:
y2 = r*(y1/r * cost - z1/r * sint ) = y1*cost - z1*sint
z2 = r*(z1/r * cost + y1/r * sint ) = y1*sint + z1*cost
即得旋转矩阵:
 
1     0       0      0
0   cost   siny   0
0  -sint   cost   0

0      0      0      1


其余的旋转矩阵推导过程相同。
 









0 0
原创粉丝点击