定义
定义vvv是三维空间R3中的一个任意向量,kkk是一个单位向量,向量vvv绕向量kkk旋转θ角度,则表示旋转后向量vvvrot的罗德里格斯公式为:
vrot=vvvcosθ+(kkk×vvv)sinθ+kkk(kkk⋅vvv)(1−cosθ)
公式推导

定义vvv是三维空间R3中的一个任意向量,kkk是一个单位向量,向量vvv绕向量kkk旋转θ角度(右手定律,图中逆时针方向)。
使用点乘和叉乘,vvv可被分解为与kkk平行和垂直的分量:
vvv=vvv∥+vvv⊥(1)
其中平行于kkk的分量为:
vvv∥=(kkk⋅vvv)kkk(2)
向量vvv∥称为向量vvv在向量kkk上的投影(vector projection),垂直于kkk的分量为:
vvv⊥=vvv−vvv∥=vvv−(kkk⋅vvv)kkk=−kkk×(kkk×vvv)(3)
向量vvv⊥称为向量vvv在向量kkk上的vector rejection(没有找到合适的翻译)。
公式(3)最后一项的推导:向量kkk×vvv可以看作是向量vvv⊥绕向量kkk逆时针旋转90°的副本,所以它们大小相等但方向垂直。同样的,向量kkk×(kkk×vvv)是vvv⊥绕kkk逆时针旋转180°的副本,所以kkk×(kkk×vvv)和vvv⊥的大小相等但方向相反(因此符号相反)。
扩展:
向量的三重叉积连接了平行分量和垂直分量,对于给定的3个向量aaa,bbb,ccc,有:
aaa×(bbb×ccc)=(aaa⋅ccc)bbb−(aaa⋅bbb)ccc

由于平行于旋转轴的分量在旋转时不会改变其幅度和方向,因此有:
vvv∥rot=vvv∥(4)
垂直分量在旋转时会改变方向,但会保持大小不变,有:
∣vvv⊥rot∣=∣vvv⊥∣(5)
vvv⊥rot=cosθvvv⊥+sinθkkk×vvv⊥(6)
由于kkk和vvv∥是平行的,所以它们的叉积为0,即kkk×vvv=0,所以我们有:
kkk×vvv⊥=kkk×(vvv−vvv∥)=kkk×vvv−kkk×vvv∥=kkk×vvv(7)
将(6)式带入(7)式,有:
vvv⊥rot=cosθvvv⊥+sinθkkk×vvv(8)
说明:
可以通过前面的图片来理解公式(8)。向量vvv⊥和kkk×vvv具有相同的长度,且kkk×vvv是vvv⊥绕kkk旋转90°得到的。利用三角函数(正弦、余弦)可得到旋转后向量的垂直分量。旋转分量的形式与笛卡尔基的2D平面极坐标(r,θ)中的径向向量类似:
rrr=rcosθeeex+rsinθeeey
其中,eeex,eeey为它们指示方向上的单位向量。
现在,旋转后的向量可完整表示为:
vvvrot=vvv∥rot+vvv⊥rot(9)
将式(4)和(8)和(2)依次带入(9),有:
vvvrot=vvv∥+cosθvvv⊥+sinθkkk×vvv=vvv∥+cosθ(vvv−vvv∥)+sinθkkk×vvv=cosθvvv+(1−cosθ)vvv∥+sinθkkk×vvv=cosθvvv+(1−cosθ)(kkk⋅vvv)kkk+sinθkkk×vvv(10)
矩阵表示
将vvv和kkk×vvv表示为列矩阵,则叉积可以表示为矩阵的乘积:
⎣⎡(kkk×vvv)x(kkk×vvv)y(kkk×vvv)z⎦⎤=⎣⎡kyvz−kzvykzvx−kxvzkxvy−kyvx⎦⎤=⎣⎡0kz−ky−kz0kxky−kx0⎦⎤⎣⎡vxvyvz⎦⎤(11)
令KKK表示单位向量kkk的“叉积矩阵”:
KKK=⎣⎡0kz−ky−kz0kxky−kx0⎦⎤(12)
则对于任意向量vvv,矩阵方程(11)可以表示为:
KKKvvv=kkk×vvv(13)
事实上,K是具有这个性质的唯一矩阵,它的特征值为0和±i。
在等式右侧迭代叉乘等价于在等式左侧迭代左乘叉积矩阵,有(迭代2次的情况):
KKK(KKKvvv)=KKK2vvv=kkk(kkk×vvv)(14)
由于kkk是单位向量,所以kkk具有单位的2范数,因此旋转公式(10)可以表示为:
vvvrot,∥KKK∥2=cosθvvv+(1−cosθ)(kkk⋅vvv)kkk+sinθkkk×vvv=vvv−vvv+cosθvvv+(1−cosθ)(kkk⋅vvv)kkk+sinθKKKvvv=vvv−(1−cosθ)vvv+(1−cosθ)(kkk⋅vvv)kkk+sinθKKKvvv=vvv−(1−cosθ)(kkk⋅kkk)vvv+(1−cosθ)(kkk⋅vvv)kkk+sinθKKKvvv=vvv+(1−cosθ)((kkk⋅vvv)kkk−(kkk⋅kkk)vvv)+sinθKKKvvv=vvv+(1−cosθ)(kkk×(kkk×vvv))+sinθKKKvvv=vvv+(sinθ)KKKvvv+(1−cosθ)KKK2vvv=(III+(sinθ)KKK+(1−cosθ)KKK2)vvv=RRRvvv=1(15)
有:
RRR=III+(sinθ)KKK+(1−cosθ)KKK2(16)
这是一个绕轴kkk逆时针旋转θ角度的旋转矩阵,其中III为一个3×3的单位矩阵。
矩阵RRR是实数空间R3中旋转群SO(3)中的元素,KKK是生成该李群的李代数so(3)中的元素(注意,KKK具有so(3)斜对称的特征)。