【发布时间】:2012-03-14 02:32:42
【问题描述】:
我一直试图找出两者之间的区别,但没有运气减去这个
两者的主要区别 这两种表示是四元数的旋转轴被缩放 通过旋转半角的正弦,而不是将角度存储在 向量的第四个分量,我们存储半角的余弦。
我不知道是什么
半旋转角的正弦
或
半角的余弦
是什么意思?
【问题讨论】:
-
可能属于Mathematics SE。
标签: axis angle quaternions
我一直试图找出两者之间的区别,但没有运气减去这个
两者的主要区别 这两种表示是四元数的旋转轴被缩放 通过旋转半角的正弦,而不是将角度存储在 向量的第四个分量,我们存储半角的余弦。
我不知道是什么
半旋转角的正弦
或
半角的余弦
是什么意思?
【问题讨论】:
标签: axis angle quaternions
Quaternios 和 Axis-angle 都是 3D 旋转/方向的 4D 表示,各有利弊。
axis-angle:表示旋转角度a和旋转轴n。例如,绕 Y 轴旋转 180 度将表示为 a = 180, n= {0,1,0}。表示非常直观,但要实际应用旋转,则需要另一种表示,例如四元数或旋转矩阵。
四元数:表示一个 4D 向量的旋转。需要更多的数学运算并且不太直观,但它是一种更强大的表示。四元数很容易插值(混合),并且很容易将它们应用于 3D 点。这些公式很容易在网上找到。给定 a 弧度围绕归一化轴 n 的旋转,四元数 4D 向量将为 {cos a/2, (sin a/2) n_x, (sin a/2) n_y, (sin a/2) n_z}。这就是半角的正弦和余弦的来源。
【讨论】:
Exponential Map 或Quaternion Log。如果其中两个靠近在一起,您实际上可以在它们之间进行欧几里得插值。
这意味着,例如,如果您想绕 Z 轴 (0,0,1) 旋转 180 度,那么四元数的实部将是 cos(180deg/2)=0,而它的虚部将是 sin(180deg/2)*(0,0,1)=(0,0,1) .那是q=0+0i+0j+1k。 90 度旋转会给你q=cos(90deg/2)+sin(90deg/2)*(0i+0j+1k)=sqrt(2)/2+0i+0j+sqrt(2)/2*k,等等。
OTOH,如果您要问什么是正弦和余弦,请检查您的语言是否提供 sin() 和 cos() 函数(尽管它们的参数可能以弧度为单位),然后查看 http://en.wikipedia.org/wiki/Sine。
【讨论】: