3d 右手欧拉角XYZ到左手欧拉角XYZ

3d 右手欧拉角XYZ到左手欧拉角XYZ,3d,rotation,geometry,coordinate-systems,euler-angles,3d,Rotation,Geometry,Coordinate Systems,Euler Angles,我相信这很简单,但在研究这一点并获得成功答案方面还没有取得任何成功 旋转定义为三个欧拉角,按XYZ顺序,右手 我必须转换成左手的欧拉XYZ系统。对于左手系统,如何调整这些角度以使其正确 另外,如果有任何人有任何样本,我可以确保正确操作,例如90-45 160或90-40 30指向什么。符号: x,y,z - old system basis x',y',z' - new system basis Transformation between systems: x' = x y' = y z'

我相信这很简单,但在研究这一点并获得成功答案方面还没有取得任何成功

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

我必须转换成左手的欧拉XYZ系统。对于左手系统,如何调整这些角度以使其正确

另外,如果有任何人有任何样本,我可以确保正确操作,例如90-45 160或90-40 30指向什么。

符号:

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') = ?
现在我可以想出两种方法来解决这个问题:

生动地
  • 绘制两个系统
  • 使用右手尺在右手边的旋转标记为正旋转
  • 使用左手尺在左手边上标记正旋转
  • 当相应轴上的旋转一致时,则转换为
    angle'=angle
    ,否则为
    angle'=angle
  • 在上图中,
    #1
    是右手系统,
    #2
    是左手系统(红线总是越过黑线)

    看这幅图,我们可以得出结论
    alfa',beta',gamma'=-alfa,-beta,+gamma

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

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

    旋转由转子
    R(角度,平面)
    R(角度,平面)=R(-角度,平面)

    现在:

    所以


    维基百科应该是一个可靠的来源,“右手/左手”的概念并没有定义一个特定的坐标系。这只是这样一个系统的特性。对于你的问题,你需要指定两个系统,即如何从x,y,z计算点坐标x',y',z'。对于左手,x右手,y向上,z向前,对于右手,我有x右手,y向上,z向上。我觉得这是一个不被重视的答案。
    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