【图像处理】一种求三维空间中两单位向量之间旋转矩阵的方法

矩阵相乘有多种含义,比如:从一种坐标系切换到另外的坐标系;空间中的运动。其中旋转矩阵相乘会改变物体的旋转角度,但不会改变物体形状和位置。单位向量可以看做一维物体,单位向量实际只有一个坐标轴,垂直于该坐标轴的其他两个坐标轴,无论怎么修改,对该单位向量并没有影响。现在我们已知两个单位向量,要求解一个向量va到另外一个向量vb的旋转矩阵,本质上可以理解为从前者对应的坐标系切换到后者对应的坐标系,与向量坐标轴相互垂直的两个坐标轴,只要满足垂直的要求即可,因为向量在垂直于向量方向上的旋转没有意义
为了方便求解,我先考虑从[1,0,0]向量转换到va向量的旋转矩阵。显然[1,0,0]向量对应的是x轴,旋转到va向量等价于将x轴变换到va向量的坐标轴,那么新坐标系的x轴就是va,令新坐标系的x轴为va1=va。接下来我们要求得垂直于va的单位向量,那么应用叉乘计算可以得到

va2=va1×[1,0,0])va3=va1×va2va2va1,va3va1,va2va3
将va2和va3都归一化,就得到了一个新坐标系,也可以说是旋转矩阵
RotateMatrixA=[va1Tva2Tva3T]RotateMatrixA100=vaT
用同样的方法获得[1,0,0]到vb的旋转矩阵 RotateMatrixB ,那么从va到vb的旋转矩阵为:
RotateMatrixBRotateMatrixA1vaT=vbTRotateMatrix=RotateMatrixBRotateMatrixA1

其中需要2+2=4次叉乘,2+2=4次向量归一化,1次矩阵求逆和1次矩阵乘法才能获得旋转矩阵。这是一个笨办法,但是对数学苦手要友好的多。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值