右手Euler角度XYZ到左手Euler角度XYZ

时间:2015-07-02 18:13:47

标签: 3d rotation geometry coordinate-systems euler-angles

我确信这很简单,但没有成功研究这个并获得成功的答案。

我将旋转定义为三个欧拉角,按XYZ顺序,右手。

我必须转换为Euler XYZ的左手系统。如何调整这些角度以适合​​左手系统?

此外,如果有人有任何样品,那么我可以确保做得正确,例如90 -45 160或90 40 30的样品。

1 个答案:

答案 0 :(得分:5)

符号:

x,y,z - old system basis
x',y',z' - new system basis

Transformation between systems:
x' = x
y' = y
z' = -z

Euler angles:
EulerXYZ = (alfa,beta,gamma)
EulerXYZ' = (alfa',beta',gamma') = ?

现在我可以想出两种解决方法:

图形

  1. 绘制两个系统
  2. 使用右手规则在右手标记上标记正向旋转
  3. 使用左手规则在左手标记上标记正向旋转
  4. 当相应轴上的旋转一致时,转换为angle' = angle,否则为angle' = -angle
  5. right and left handes system with positive rotation marked

    上图中#1是右撇子,#2是左撇子系统(红线总是经过黑线)。

    从图片中我们可以得出结论 alfa',beta',gamma' = -alfa,-beta,+gamma

    代数

    可以使用几何代数计算转换。它在某种程度上类似于 四元数但旋转发生在“定向平面”而不是“绕轴”。

    定向平面由两个向量u^v的乘积定义,并具有以下属性:-(u^v) = (-u)^v = u^(-v)

    旋转由转子R(angle, plane)R(angle, -plane) = R(-angle, plane)

    定义

    现在:

    R(alfa, y^z) = R(-alfa, -(y^z)) = R(-alfa, y^(-z)) = R(-alfa, y'^z')
    R(beta, x^z) = R(-beta, x'^z')
    R(gamma, x^y) = R(+gamma, x'^y')
    

    所以

    alfa',beta',gamma' = -alfa,-beta,+gamma