我一直试图找到这两者之间的区别,但无济于事,除了下面这句话:
两种表示法最主要的区别在于四元数的旋转轴被旋转角度的正弦值所缩放,而不是将角度存储在向量的第四个分量中,我们将半角的余弦值存储下来。
我不知道
旋转角度的正弦值
或者
半角的余弦值
是什么意思?
我一直试图找到这两者之间的区别,但无济于事,除了下面这句话:
两种表示法最主要的区别在于四元数的旋转轴被旋转角度的正弦值所缩放,而不是将角度存储在向量的第四个分量中,我们将半角的余弦值存储下来。
我不知道
旋转角度的正弦值
或者
半角的余弦值
是什么意思?
四元数和轴角都是三维旋转/方向的表示方法,两者都有优缺点。
轴角:通过其角度a和旋转轴n来表示旋转。例如,绕Y轴旋转180度将表示为a=180,n={0,1,0}。该表示法非常直观,但实际应用旋转时需要另一种表示法,如四元数或旋转矩阵。
四元数:通过4D向量表示旋转。需要更多的数学知识,不太直观,但是它是一种更强大的表示法。四元数很容易进行插值(混合),并且很容易在3D点上应用它们。这些公式可以在网上轻松找到。给定一个关于归一化轴n的a弧度旋转,四元数4D向量将为{cos a/2,(sin a/2) n_x,(sin a/2) n_y,(sin a/2) n_z}。这就是半角的正弦和余弦所在之处。
cos(180度/2)=0
,虚部将是 sin(180度/2)*(0,0,1)=(0,0,1)
。这是 q=0+0i+0j+1k
。90度旋转将给出 q=cos(90度/2)+sin(90度/2)*(0i+0j+1k)=sqrt(2)/2+0i+0j+sqrt(2)/2*k
,以此类推。sin()
和 cos()
函数(它们的参数可能是弧度),并查看http://en.wikipedia.org/wiki/Sine。