罗德里格斯公式推导

本文详细介绍了罗德里格斯旋转公式的基本原理及其数学推导过程,包括向量绕任意轴旋转的计算方法,并拓展讨论了当向量与旋转轴不共面时的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

罗德里格斯公式推导

第一部分

请添加图片描述

向量 v=(vx,vy,vz)Tv=(v_{x},v_{y},v_{z})^{T}v=(vx,vy,vz)T单位方向矢量 n=(nx,ny,nz)Tn=(n_{x},n_{y},n_{z})^{T}n=(nx,ny,nz)T 转过角度 θ\thetaθ 得到向量 vrotv_{rot}vrot .
v∣∣=(v⋅n)nw=(n×v)v⊥=v−v∣∣=v−(v⋅n)nv⊥=−n×w=−n×(n×v)v∣∣=v+n×(n×v) v_{||}=(v \cdot n)n\\ w= (n\times v)\\ v_{\perp}=v-v_{||}=v-(v \cdot n)n\\ v_{\perp}=-n\times w = -n\times (n\times v)\\ v_{||}=v+n\times (n\times v) v∣∣=(vn)nw=(n×v)v=vv∣∣=v(vn)nv=n×w=n×(n×v)v∣∣=v+n×(n×v)

n×v = ∣ijknxnynzvxvyvz∣= [0−nznynz0−nx−nynx0][vxvyvz] = Nv = n×v n\times v\ =\ \left|\begin{array}{ccc}\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\ n_x & n_y & n_z \\ v_x & v_y & v_z \end{array}\right| = \ \left[\begin{array}{ccc} 0 & -n_z & n_y \\ n_z & 0 & -n_x \\ -n_y & n_x & 0 \end{array}\right] \left[\begin{array}{c}v_x \\ v_y \\ v_z \end{array}\right]\ = \ Nv\ =\ n^{\times}v n×v = inxvxjnyvyknzvz= 0nznynz0nxnynx0vxvyvz = Nv = n×v

vrot=v∣∣+v⊥cos⁡θ+wsin⁡θ=v+n×(n×v)−n×(n×v)cos⁡θ+(n×v)sin⁡θ=v+(1−cos⁡θ)N2v+Nvsin⁡θ=[I+(1−cos⁡θ)N2+Nsin⁡θ]v=Rv \begin{aligned} v_{rot}&=v_{||}+v_{\perp}\cos \theta +w\sin \theta \\ &=v+n\times (n\times v) -n\times (n\times v)\cos \theta +(n\times v)\sin \theta \\ &=v+(1-\cos \theta )N^{2}v+Nv\sin \theta \\ &=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v \\ &= Rv \end{aligned} vrot=v∣∣+vcosθ+wsinθ=v+n×(n×v)n×(n×v)cosθ+(n×v)sinθ=v+(1cosθ)N2v+Nvsinθ=[I+(1cosθ)N2+Nsinθ]v=Rv

其中
N2=N⋅N=[−ny2−nz2nxnynxnznxny−nx2−nz2nynznxnznynz−nx2−ny2]=[nx2−1nxnynxnznxnyny2−1nynznxnznynznz2−1]=n⋅nT−I \begin{aligned} N^{2}=N\cdot N &=\left[\begin{array}{ccc} -n_{y}^{2}-n_{z}^{2} & n_{x}n_{y} & n_{x}n_{z} \\ n_{x}n_{y} & -n_{x}^{2}-n_{z}^{2} & n_{y}n_{z} \\ n_{x}n_{z} & n_{y}n_{z} & -n_{x}^{2}-n_{y}^{2} \end{array}\right]\\ &=\left[\begin{array}{ccc} n_{x}^{2}-1 & n_{x}n_{y} & n_{x}n_{z} \\ n_{x}n_{y} & n_{y}^{2}-1 & n_{y}n_{z} \\ n_{x}n_{z} & n_{y}n_{z} & n_{z}^{2}-1 \end{array}\right]\\ &= n \cdot n^{T} - I \end{aligned} N2=NN=ny2nz2nxnynxnznxnynx2nz2nynznxnznynznx2ny2=nx21nxnynxnznxnyny21nynznxnznynznz21=nnTI
所以
R=I+(1−cos⁡θ)N2+Nsin⁡θ=I+(1−cos⁡θ)(n⋅nT−I)+Nsin⁡θ=Icos⁡θ+(1−cos⁡θ)n⋅nT+Nsin⁡θ \begin{aligned} R&=I+(1-\cos \theta )N^{2}+N\sin \theta \\ &=I+(1-\cos \theta )(n\cdot n^{T}-I)+N\sin \theta \\ &=I\cos \theta +(1-\cos \theta )n\cdot n^{T}+N\sin \theta \end{aligned} R=I+(1cosθ)N2+Nsinθ=I+(1cosθ)(nnTI)+Nsinθ=Icosθ+(1cosθ)nnT+Nsinθ

第二部分

以上是向量 v=(vx,vy,vz)Tv=(v_{x},v_{y},v_{z})^{T}v=(vx,vy,vz)T单位方向矢量 n=(nx,ny,nz)Tn=(n_{x},n_{y},n_{z})^{T}n=(nx,ny,nz)T 共面。如果二者不共面,如下图 v3v_3v3 ,可以将 v3v_3v3平移,使 v3v_3v3nnn 共面再用上面公式.

或者使用nnn 共面的 vvvv2v_2v2 构造 v3v_3v3 ,即 v3=v−v2v_3=v-v_2v3=vv2 .
请添加图片描述

这里 vvvv2v_2v2 满足
vrot=[I+(1−cos⁡θ)N2+Nsin⁡θ]vv2rot=[I+(1−cos⁡θ)N2+Nsin⁡θ]v2 \begin{aligned} v_{rot}&=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v \\ v_{2rot}&=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v_{2} \end{aligned} vrotv2rot=[I+(1cosθ)N2+Nsinθ]v=[I+(1cosθ)N2+Nsinθ]v2
所以向量 v3v_3v3单位方向矢量 n=(nx,ny,nz)Tn=(n_{x},n_{y},n_{z})^{T}n=(nx,ny,nz)T 转过角度 θ\thetaθ 得到向量 v3rotv_{3rot}v3rot 的公式如下:
v3rot=vrot−v2rot=[I+(1−cos⁡θ)N2+Nsin⁡θ](v−v2)=[I+(1−cos⁡θ)N2+Nsin⁡θ]v3 \begin{aligned} v_{3rot}&=v_{rot}-v_{2rot}\\ &=[I+(1-\cos \theta )N^{2}+N\sin \theta ](v-v_2)\\ &=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v_3 \end{aligned} v3rot=vrotv2rot=[I+(1cosθ)N2+Nsinθ](vv2)=[I+(1cosθ)N2+Nsinθ]v3
由上可知:即使 v3v_3v3nnn 不共面,仍然满足罗德里格斯公式,因为这个空间是线性的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值