绕任意轴旋转向量

旋转正方向:

从所绕轴正方向往原点看,顺时针为旋转正方向

绕X轴旋转的旋转矩阵:

1      0       0

0  cosa  -sina

0  -sina  cosa

绕Y轴旋转的旋转矩阵:

cosa      0       -sina

0             1        0

sina       0         cosa

绕Z轴旋转的旋转矩阵:

cosa      sina      0

-sina     cosa      0

0                0         1

绕任意向量n旋转的矩阵,假设n是单位向量:

绕向量n旋转v得到v`

向量v绕单位向量n正方向旋转a度后得到v`,求v`。

要求v`,只要求v`+v即可,v = v+ v

v = (v 点乘 n 得到 v的长度)乘以n, 得到v = (v · n) * n

v = v - v = v - v · n * n (推导1)

假设w是v和n的叉乘向量,则w垂直于v和n所组成的平面,并且||w|| = ||v⊥||

(因为w = vX n,所以||w|| = V和n组成的平行四边形的面积,由于n是单位向量,所以w长度 = v的长度,即 ||w|| = ||v|| = ||v`||)

v` = v` * sina + v` * cosa = w * sina + v * cosa

=  (vX n) * sina + v*cosa

=((v - v) X n) * sina + (v-(v·n)*n)*cosa //带入推导1替换掉v

= (v X n) * sina + (v - (v·n) *n) * cosa//由于vx n等于0,可以消掉

v` = v` + v

 = (v X n) * sina + (v - (v·n) *n) * cosa+  (v · n) * n


现在已经得到了v`与v、n和角度a的关系了,那么可以计算变换后的基向量构成的矩阵

假设n = [Nx Ny Nz],将v = [1 0 0]带入得到:

n²(1-cosa) + cosa    NxNy(1-cosa) + Nzsina    NxNz(1-cosa) - Nysina

另外两个基向量也计算后,得到矩阵:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值