问题
已知一个向量 v ⇀ \overrightharpoon{v} v和一个旋转轴 k ˆ \text{\^{k}} kˆ(单位向量), v ⇀ \overrightharpoon{v} v绕 k ˆ \text{\^{k}} kˆ旋转 θ \theta θ,求旋转后的向量 v r o t ⇀ \overrightharpoon{v_{rot}} vrot$.
罗德里格公式
罗德里格公式可解决上述问题,公式为:
v
r
o
t
⇀
=
cos
θ
v
⇀
+
(
1
−
cos
θ
)
(
v
⇀
∙
k
ˆ
)
k
ˆ
+
sin
θ
(
k
ˆ
×
v
⇀
)
.
\overrightharpoon{v_{rot}}=\cos\theta \overrightharpoon{v}+(1-\cos\theta)(\overrightharpoon{v} \bullet \text{\^{k}})\text{\^{k}}+\sin\theta (\text{\^{k}} \times \overrightharpoon{v}).
vrot=cosθv+(1−cosθ)(v∙kˆ)kˆ+sinθ(kˆ×v).
推导
上图中,
v
v
v表示待旋转的向量,
k
k
k表示旋转轴(单位向量),
v
∥
v_{\|}
v∥表示
v
v
v在
k
k
k上的投影,
v
⊥
v_{\bot}
v⊥表示与
k
k
k垂直的分量,
v
v
v、
v
∥
v_{\|}
v∥、
v
⊥
v_{\bot}
v⊥、
k
k
k在同一平面上,假设为
s
1
s_1
s1,
w
w
w为
k
k
k与
v
v
v叉乘得到的向量,
w
w
w与
s
1
s_1
s1垂直;
v
r
o
t
v_{rot}
vrot为旋转后的向量,显然,其在
k
k
k上的投影也为
v
∥
v_{\|}
v∥,假设与
k
k
k垂直的分量为
v
r
o
t
⊥
v_{rot_\bot}
vrot⊥,
v
r
o
t
v_{rot}
vrot、
v
∥
v_{\|}
v∥、
v
r
o
t
⊥
v_{rot_\bot}
vrot⊥、
k
k
k也在统一平面,假设为
s
2
s_2
s2,则
s
1
s_1
s1与
s
2
s_2
s2的夹角为
θ
\theta
θ.
由以上可知:
v
=
v
∥
+
v
⊥
⇒
v
⊥
=
v
−
v
∥
(1)
\tag{1} v=v_{\|}+v_{\bot}\Rightarrow v_{\bot}=v-v_{\|}
v=v∥+v⊥⇒v⊥=v−v∥(1)
v
∥
=
(
v
∙
k
)
k
(2)
\tag{2} v_{\|}=(v \bull k)k
v∥=(v∙k)k(2)
可得:
v
⊥
=
v
−
(
v
∙
k
)
k
(3)
\tag{3}v_{\bot}=v-(v \bull k)k
v⊥=v−(v∙k)k(3)
又
v
r
o
t
⊥
=
cos
θ
∥
v
r
o
t
⊥
∥
∙
v
⊥
/
∥
v
⊥
∥
+
sin
θ
∥
v
r
o
t
⊥
∥
∙
w
/
∥
w
∥
.
(4)
\tag{4}v_{rot_\bot}=\cos\theta \|v_{rot_\bot}\| \bull v_{\bot}/\|v_{\bot}\|+\sin\theta \|v_{rot_\bot}\| \bull w/\|w\|.
vrot⊥=cosθ∥vrot⊥∥∙v⊥/∥v⊥∥+sinθ∥vrot⊥∥∙w/∥w∥.(4)
公式
(
4
)
(4)
(4)的意思是,
v
r
o
t
⊥
v_{rot_\bot}
vrot⊥等于其在
v
⊥
v_\bot
v⊥方向的分量加上其在
w
w
w上的分量。
因为
∥
v
r
o
t
⊥
∥
=
∥
v
⊥
∥
=
∥
w
∥
(5)
\tag{5}\|v_{rot_\bot}\|=\|v_\bot\|=\|w\|
∥vrot⊥∥=∥v⊥∥=∥w∥(5)
所以
v
r
o
t
⊥
=
cos
θ
v
⊥
+
sin
θ
w
.
(6)
\tag{6} v_{rot_\bot}=\cos\theta v_{\bot}+\sin\theta w.
vrot⊥=cosθv⊥+sinθw.(6)
公式
(
5
)
(5)
(5)中
∥
v
r
o
t
⊥
∥
=
∥
v
⊥
∥
\|v_{rot_\bot}\|=\|v_\bot\|
∥vrot⊥∥=∥v⊥∥显而易见,现证明
∥
v
r
o
t
⊥
∥
=
∥
w
∥
.
\|v_{rot_\bot}\|=\|w\|.
∥vrot⊥∥=∥w∥.
k
×
v
⊥
=
w
⇒
∥
k
∥
∥
v
⊥
∥
sin
(
π
/
2
)
=
∥
w
∥
⇒
∥
v
⊥
∥
=
∥
w
∥
(7)
\tag{7}k \times v_{\bot}=w \Rightarrow \|k\| \|v_\bot\| \sin(\pi/2)=\|w\| \Rightarrow \|v_\bot\|=\|w\|
k×v⊥=w⇒∥k∥∥v⊥∥sin(π/2)=∥w∥⇒∥v⊥∥=∥w∥(7)
从而证明。
由
v
r
o
t
=
v
∥
+
v
r
o
t
⊥
(8)
\tag{8}v_{rot}=v_{\|}+v_{rot_\bot}
vrot=v∥+vrot⊥(8)
代入公式
(
2
)
(
6
)
(2)(6)
(2)(6)可得:
v
r
o
t
=
(
v
∙
k
)
k
+
cos
θ
v
⊥
+
sin
θ
w
(9)
\tag{9}v_{rot}=(v \bull k)k+\cos\theta v_{\bot} + \sin\theta w
vrot=(v∙k)k+cosθv⊥+sinθw(9)
代入公式
(
3
)
(3)
(3)可得:
v
r
o
t
=
(
v
∙
k
)
k
+
cos
θ
(
v
−
(
v
∙
k
)
k
)
+
sin
θ
(
k
×
v
)
(10)
\tag{10}v_{rot}=(v \bull k)k+\cos\theta (v-(v \bull k)k)+\sin\theta (k \times v)
vrot=(v∙k)k+cosθ(v−(v∙k)k)+sinθ(k×v)(10)
化简得:
v
r
o
t
=
cos
θ
v
+
(
1
−
cos
θ
)
(
v
∙
k
)
k
+
sin
θ
(
k
×
v
)
(11)
\tag{11}v_{rot}=\cos\theta v+(1-\cos\theta)(v \bull k)k+\sin\theta(k \times v)
vrot=cosθv+(1−cosθ)(v∙k)k+sinθ(k×v)(11)
得证。