矩阵变换:沿任意轴旋转及其推导

Posted alps_01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵变换:沿任意轴旋转及其推导相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/zsq306650083/article/details/8773996

 

1. 2D中绕原点旋转

设基向量p,q和r分别是朝向+x,+y和+z方向的单位向量。

旋转角度为θ,基向量p,q绕原点旋转,得到新的基向量p`和q`

技术分享

即旋转矩阵R(θ)为

技术分享

 

2. 3d中绕坐标轴旋转

01. 绕x轴旋转,基向量q和r旋转θ,得到新的基向量q`和r`

技术分享

即旋转矩阵Rx(θ)为:

技术分享

02. 绕y轴旋转,基向量p和r旋转θ,得到新的基向量p`和r`

技术分享

即旋转矩阵Ry(θ)为:

技术分享

 

03. 绕z轴旋转,基向量p和q旋转θ,得到新的基向量p`和q`

技术分享

即旋转矩阵Rz(θ)为:

技术分享

 

3. 绕任意轴旋转

这里不考虑平移,所以是过原点的任意轴。

任意轴用单位向量n表示,绕n旋转θ角度的矩阵表示为R(n,θ),v`是向量v绕轴n旋转后的向量

v` = VR(n,θ)

我们的目标是用v,n和θ来表示v`,具体步骤如下:

将v分解为平行于n的分向量v||和垂直于n的分向量v⊥。v`⊥是v`垂直于n的分向量。

技术分享

01.根据向量投影公式有

技术分享

02.根据v||算出v⊥,w是v⊥与n叉剩的结果

技术分享

03.根据w算出v`⊥

技术分享

04.最后算出v`

技术分享

 

05.现在已经得到了v`与v,n和θ的关系公式,用它来计算变换后的基向量并构造矩阵,基向量p`为

技术分享

06.其余基向量类推,这里纠正上式中列向量的写法

技术分享

07.合并为矩阵后:

技术分享

 

更多内容参见:3d数学基础

以上是关于矩阵变换:沿任意轴旋转及其推导的主要内容,如果未能解决你的问题,请参考以下文章

3d变换基础:平移旋转缩放(仿射变换)详解——公式推导

three.js中的矩阵变换(模型视图投影变换)

three.js 中的矩阵变换及两种旋转表达方式

如何只翻转变换矩阵的一个轴?

史上最简SLAM零基础解读 - 旋转平移矩阵→欧式变换推导

如何使用 3D 中的变换矩阵围绕 Z 轴旋转?