From: http://www.zoditech.com/article.asp?id=14
左手坐标系下,一点绕任意轴旋转θ角的右乘矩阵:
其中C为cosθ,S为sinθ,A为单位化的旋转轴
以下推导均为左手坐标
首先我们将P看成从原点出发的自由向量,将其分解为平行于轴A与垂直于轴A的分量A1,A2的形式:
(公式1)
如图2:
图2
(公式2)
(公式3)
由于平行分量A1在旋转过程中保持不变,问题就在于垂直分量A2。先将A2旋转θ度后(A3)再加上A1就可以得到最终的旋转结果。如图3:
图3蓝色的点为P点旋转θ度后的位值
旋转后的位置点P'为:
(公式4)
因为A2到A3的旋转是在垂直于A轴平面内进行的,所以可以将A3分解为A2与A2逆时针方向旋转90度的向量A4上的两个分量的形式。如图4:
图4
下面我们来求A4
A2可以看成φ的对边,如图5:
图5
A2的长度为:
(公式5)
我们想要的向量A4正好为:
(公式6)
(公式7)
因为A为单位向量所以(公式7)与(公式5)相等,这样长度相等并且同时垂直于A1,A2,所以就是我们要求的A4。
接下为求A3,我们用一个垂直于A的平面图来看一下,这样更直接,如图6:
图6
A2'与A4'分别为A3在A2与A4上的分量。
(公式8)
(公式9)
(公式10)
因为:A2,A3,A4的长度都相等所以上面的两式化简为:
(公式11)
(公式12)
将以上公式代入到(公式4)中计算最终结果:
整理后得:
(公式13)
设:
写成矩阵的形式为:
(公式14)
(公式15)
(公式16)
代入(公式13)得:
最终齐次的旋转矩阵为: