计算两个向量之间的旋转矩阵

为了更好地推导,我们需要加入三个轴对齐的单位向量i,j,k。
i,j,k满足以下特点:
i=jxk;j=kxi;k=ixj;
kxj=–i;ixk=–j;jxi=–k;
ixi=jxj=kxk=0;(0是指0向量)
由此可知,i,j,k是三个相互垂直的向量。它们刚好可以构成一个坐标系。
这三个向量的特例就是i=(1,0,0)j=(0,1,0)k=(0,0,1)。
对于处于i,j,k构成的坐标系中的向量u,v我们可以如下表示:
u=Xui+Yuj+Zuk;
v=Xv
i+Yvj+Zvk;
uxv=(Xui+Yuj+Zuk)x(Xvi+Yvj+Zvk)
=XuXv(ixi)+XuYv(ixj)+XuZv(ixk)+YuXv(jxi)+YuYv(jxj)+YuZv(jxk)+ZuXv(kxi)+ZuYv(kxj)+ZuZv(kxk)

1.旋转角度
已知旋转前向量为P, 旋转后变为Q。由点积定义可知:
在这里插入图片描述
可推出P,Q之间的夹角为:
在这里插入图片描述
2. 旋转轴
由1中可知,旋转角所在的平面为有P和Q所构成的平面,那么旋转轴必垂直该平面。

假定旋转前向量为a(a1, a2, a3), 旋转后向量为b(b1, b2, b3)。由叉乘定义得:
在这里插入图片描述
可得旋转轴c(c1, c2, c3)为:
在这里插入图片描述
已知单位向量c.normalize , 将它旋转θ角。由罗德里格旋转公式,可知对应的旋转矩阵R :

在这里插入图片描述
其中I是3x3的单位矩阵

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值