鸟语天空
3D中绕任意轴的旋转
post by:追风剑情 2018-7-13 21:08

这里讨论绕通过原点的任意轴。用单位向量n描述旋转轴,用θ描述旋转量。

让我们导出绕轴n旋转角度θ的矩阵。也就是说,我们想得到满足下面条件的矩阵

vR(n, θ)=v'

v'是向量v绕轴n旋转后的向量。让我们看看能否用v,n和θ表示v'。我们的想法是在垂直于n的平面中解决这个问题,那么这就转换为了一个简单的2D问题。为了做到这一点,将v分解为两个分量:v∥和v⊥,分别平行于n和垂直于n,并有v=v∥+v⊥。因为v∥平行于n,所以绕n旋转不会影响它。故只要计算出v⊥绕n旋转后的v⊥',就能得到v'=v∥+v⊥',我们构造向量v∥,v⊥和临时向量w,如图所示。

11111.png

上图展示了以下向量:


现在,v'垂直于n的分量可以表示为:

2222.png

代换v⊥和w:

333.png

4444.png

5555.png

代入v'的表达式,有:

7777.png

现在,已经得到v'与v,n,θ的关系公式了,可以用它来计算变换后的基向量并构造矩阵。第一个基向量为:

99999.png

另外两个基向量的推导与之类似,有:

0000.png

1111.png

注意:上面我们只使用了列向量,这样做的目的是使等式整洁清晰、易于理解。

用这些基向量构造矩阵,可得公式为:

2222.png

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容