【问题标题】:Quaternion and three axes四元数和三轴
【发布时间】:2010-08-19 17:24:39
【问题描述】:

给定一个四元数q,三个3D向量(vx,vy,vz)组成坐标轴,可以任意方向定向,但都相互垂直,从而形成一个3d空间。

如何检查四元数 q 是否与某些 3D 向量(vx、vy、vz)旋转到相同方向(或相反方向)?

【问题讨论】:

    标签: math computational-geometry quaternions


    【解决方案1】:

    如果 q = (w,x,y,z),其中 w 是“标量部分”,qv=(x,y,z) 是“向量部分”, 然后您可以计算 qv 与每个基向量 vx、vy、vz 之间的角度 使用点积。

    cos(theta) = (qv 点 vx) / ( |qv| * |vx|)

    如果 cos(theta) 为 +1,则 q 的旋转轴平行于该基向量。

    cos(theta) = -1 表示它们是反平行的。

    【讨论】:

    • 嗯...这完全忽略了四元数的“w”分量。这是正确的吗?
    • @qutern:没错……希望我没有误解你的问题!如果将 q 归一化为单位四元数,则 w = cos(alpha/2) 给出旋转角 alpha,并且 (x,y,z) 是位于旋转轴上的向量。我假设您问的是如何确定旋转轴 (x,y,z) 是否平行于基向量 vx、vy、vz 之一。如果是这样,则该计算不需要 w。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多