3D旋转

两种3D旋转

1. 轴/角(指数扭曲)

物体在三维空间中的旋转,可以被分为解为在直接坐标系下,分别先后围绕x,y,z坐标轴旋转得到。旋转的角度也就是我们常听到的角度roll,pitch,yew。如果已知这几个角度,就可以直接通过每一步的矩阵相乘得到整个旋转矩阵。旋转矩阵还可以理解为围绕空间中某一个向量,直接一次旋转某一个角度得到。 旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)。旋转向量与旋转矩阵可以通过罗德里格斯(Rodrigues)变换进行转换,以 n^(n^x,n^y,n^z) n ^ ( n ^ x , n ^ y , n ^ z ) 为轴做 θ θ 角旋转的旋转矩阵写为:

R= I+(sinθ)[n^]+(1cosθ)[n^]2 R =   I + ( sin ⁡ θ ) [ n ^ ] + ( 1 − cos ⁡ θ ) [ n ^ ] 2

其中, I I 为单位矩阵
(3)[n^]=[0n^zn^yn^z0n^xn^yn^x0]

https://blog.csdn.net/wangyang20170901/article/details/78800540
https://blog.csdn.net/u014328804/article/details/71499966

2. 单位四元数

四元数:指将二维平面的复数坐标额外增加2个虚数扩展到三维空间,即一般形式为:
 q=s+xi+yj+zk   q = s + x i + y j + z k
式中,s为实数, xiyjzk x i , y j , z k 为虚数
单位四元数即为四元数除以它的范数 |q|=s2+x2+y2+z2 | q | = s 2 + x 2 + y 2 + z 2
利用单位四元数表述旋转主要利用一个复数的特征,即对一个复数乘以i,这个复数在复数平面上旋转了90°。
则定义一个可以旋转3D空间的单位四元数
q=cosθ+sinθv⃗ =[cosθ,sinθv⃗ ] q = cos ⁡ θ + sin ⁡ θ v → = [ cos ⁡ θ , sin ⁡ θ v → ]
其中 v⃗ =(ai,bj,ck) v → = ( a i , b j , c k ) ,表示三维任意向量。
则对任意的坐标 p=[0,p⃗ ](p) p = [ 0 , p → ] ( p 为 纯 四 元 数 ) 绕向量 v⃗  v → 旋转 θ θ 角度后的坐标 P⃗ =qp P → = q p ,即等于两个四元数的积
由于经单位四元数变换后旋转了 2θ 2 θ 角,因此对旋转 θ θ 角的旋转四元数的一半形式表示为:

q=[cosθ2,sinθ2v⃗ ] q = [ cos ⁡ θ 2 , sin ⁡ θ 2 v → ]

http://www.qiujiawei.com/understanding-quaternions/#1.5
https://www.3dgep.com/understanding-quaternions/
https://www.zhihu.com/question/23005815

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值