三维旋转矩阵推导

1.绕X轴旋转,

分别求出Y、Z基向量绕X轴旋转θ后描述,

X基向量不变为X'=(1,0,0),

Y基向量绕X轴旋转θ后为Y'=(0,cosθ,sinθ),

Z基向量绕X轴旋转θ后为Z'=(0,-sinθ,cosθ),

若为矩阵乘列向量形式,矩阵为,

1        0       0

0     cosθ     -sinθ

0     sinθ      cosθ ,

若为行向量乘矩阵形式,矩阵为,

1        0       0

0     cosθ     sinθ

0     -sinθ      cosθ ,

2.绕Y轴旋转

X基向量绕Y轴旋转θ后为X'=(cosθ,0,-sinθ),

Y基向量不变,为Y'=(0,1,0),

Z基向量绕Y轴旋转θ后为Z'=(sinθ,0,cosθ),

若为矩阵乘列向量形式,矩阵为,

cosθ    0    sinθ

0         1      0

-sinθ    0    cosθ,

若为行向量乘矩阵形式,矩阵为,

cosθ    0    -sinθ

0         1      0

sinθ    0    cosθ,

3.绕Z轴旋转

X基向量绕Z轴旋转θ后为X'=(cosθ,sinθ,0),

Y基向量绕Z轴旋转θ后为Y'=(-sinθ,cosθ,0),

Z基向量不变,为Z'=(0,0,1),

若表示为矩阵乘列向量形式,矩阵为,

cosθ   -sinθ   0

sinθ   cosθ    0

0         0        1,

若表示为行向量乘矩阵形式,矩阵为,

cosθ   sinθ   0

-sinθ   cosθ    0

0         0        1,

3.绕任意轴旋转,

为方便推导,设向量n(x0,y0,z0)为单位向量,向量v(x,y,z)

将向量v分解为平行于向量n的向量v∥和垂直于向量n的向量v⊥,

已知,

v=v∥+v⊥,

v'=v'∥+v'⊥=v∥+v'⊥,

而v∥=(v·n)*n,

v⊥=v-v∥=v-(v·n)*n,

令向量w=n×v⊥=n×[v-(v·n)*n]=n×v,其大小为|n|*|v⊥|*sin90°=|v⊥|,

那么v'⊥=sinθ*w+cosθv⊥

             =sinθ*n×v+cosθ*(v-(v·n)*n)

那么v'=v'∥+v'⊥

         =(v·n)*n+sinθ*n×v+cosθ*(v-(v·n)*n)

接下来就可以求各基向量绕向量n旋转θ后的表示,

X'=(X·n)*n+sinθ*n×X+cosθ*(X-(X·n)*n)

     |x0^2  |       |    0        |      | cosθ-cosθ*x0^2 |

   =|x0*y0|  +   |z0*sinθ |  +  |  -cosθ*x0y0       |

     |x0*z0|       |-y0*sinθ |      |  -cosθ*x0z0       |

   

    |x0^2*(1-cosθ)+cosθ     |

=  |x0y0*(1-cosθ)+z0*sinθ |

    |x0z0*(1-cosθ)-y0*sinθ |,

同样,

Y'=(Y·n)*n+sinθ*n×Y+cosθ*(Y-(Y·n)*n)

     |x0*y0|       |-z0*sinθ |      | -cosθ*x0y0         |

   =|y0^2 |  +   |     0       |  +  |  cosθ-cosθ*y0^2 |

     |y0*z0|       |x0*sinθ |      |  -cosθ*y0z0         |

   

    |x0y0*(1-cosθ)-z0*sinθ  |

=  |y0^2*(1-cosθ)+cosθ     |

    |y0z0*(1-cosθ)+x0*sinθ |,

同样,

Z'=(Z·n)*n+sinθ*n×Z+cosθ*(Z-(Z·n)*n)

     |x0*z0|       |y0*sinθ  |      | -cosθ*x0z0         |

   =|y0z0 |  +   |-x0*sinθ |  +  | -cosθ*y0z0         |

     |z0^2 |       |      0      |      | cosθ -cosθ*z0^2 |

   

    |x0z0*(1-cosθ)+y0*sinθ  |

=  |y0z0*(1-cosθ)-x0*sinθ   |

    |z0^2*(1-cosθ)+cosθ      |,

然后构造矩阵,

若为矩阵乘列向量形式,矩阵为

|x0^2*(1-cosθ)+cosθ       x0y0*(1-cosθ)-z0*sinθ    x0z0*(1-cosθ)+y0*sinθ  |

|x0y0*(1-cosθ)+z0*sinθ    y0^2*(1-cosθ)+cosθ       y0z0*(1-cosθ)-x0*sinθ   |

|x0z0*(1-cosθ)-y0*sinθ    y0z0*(1-cosθ)+x0*sinθ   z0^2*(1-cosθ)+cosθ      |,

若为行向量乘矩阵形式,矩阵为

|x0^2*(1-cosθ)+cosθ       x0y0*(1-cosθ)+z0*sinθ    x0z0*(1-cosθ)-y0*sinθ  |

|x0y0*(1-cosθ)-z0*sinθ    y0^2*(1-cosθ)+cosθ       y0z0*(1-cosθ)+x0*sinθ   |

|x0z0*(1-cosθ)+y0*sinθ    y0z0*(1-cosθ)-x0*sinθ   z0^2*(1-cosθ)+cosθ      |,

得安装公式编辑器了=-=!

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值