3D旋转

两种3D旋转

1. 轴/角(指数扭曲)

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

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

其中, I 为单位矩阵
(3) [ n ^ ] = [ 0 n ^ z n ^ y n ^ z 0 n ^ x n ^ y n ^ x 0 ]

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

2. 单位四元数

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

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

猜你喜欢

转载自blog.csdn.net/u010623565/article/details/80182169