【问题标题】:Right-Handed Euler Angles XYZ to Left-Handed Euler Angles XYZ右手欧拉角 XYZ 到左手欧拉角 XYZ
【发布时间】:2015-07-02 18:13:46
【问题描述】:

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

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

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

另外,如果有人有任何样品,那么我可以确保做对,例如 90 -45 160 或 90 40 30 去哪里。

【问题讨论】:

  • 维基百科应该是可靠的来源en.wikipedia.org/wiki/Euler_angles
  • “右手/左手”的概念并没有定义特定的坐标系。它只是这样一个系统的一个属性。对于您的问题,您需要指定两个系统之间的转换,即如何从 x,y,z 计算点坐标 x',y',z' ?
  • 对于左撇子,X 右,Y 向上,Z 向前,对于右手,我有 X 向右,Y 向上,Z 远。

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


【解决方案1】:

符号:

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

上图中#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

【讨论】:

  • 我觉得这是一个被低估的答案。
  • 只想说清楚,我们说的是外在旋转吗?
  • @vickyLin 它适用于内部和外部旋转。
  • 但是内在旋转会在旋转时改变旋转轴。根据“以图形方式解决它”有何意义?
  • @vickyLin 我们不应用旋转。这个问题是关于在两个坐标系之间转换角度。这些角度可以描述不同的内在或外在旋转。适当的转换可确保某些特定旋转的效果在两个坐标系中是相同的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2012-07-14
  • 1970-01-01
  • 2019-10-27
相关资源
最近更新 更多