【问题标题】:Extract Euler rotation from matrix using Maya使用 Maya 从矩阵中提取欧拉旋转
【发布时间】:2021-12-18 18:26:16
【问题描述】:

我正在尝试根据这些值提取对象的旋转:

[ 0.00000000, 0.00000000, 0.00000000,
0.33333334, -0.53828228, 0.00000000,
0.66666669, -1.07656455, 0.00000000,
1.00000000, -1.61484683, 0.00000000 ]

我不太确定如何正确地做到这一点。我在网上找到了一些解决方案,但没有一个对我有用,因为这些示例中使用的所有值都与上面的值有些不同。 有谁知道如何使用 Python/OpenMaya 提取它? 我将不胜感激任何帮助。 提前致谢。

【问题讨论】:

  • 这些值是什么?我认为四元数会是复数,那么这些未打包的值是否包括笛卡尔坐标?
  • 欢迎来到Stack Overflow. 请注意这不是代码编写或辅导服务。我们可以帮助解决具体的技术问题,而不是对代码或建议的开放式请求。请编辑您的问题以显示您迄今为止尝试过的内容,以及您需要帮助的具体问题。请参阅How To Ask a Good Question 页面,详细了解如何最好地帮助我们。

标签: python maya euler-angles eulers-number


【解决方案1】:

您指定的数字似乎有点奇怪(并且没有任何上下文)。总之,在 Maya 中,有几个选项可以将矩阵转换为欧拉旋转角度。

  1. 构造一个MTransformationMatrix (Maya API 类之一) 并将相关矩阵提供给构造函数。 eulerRotation() 方法将返回值(尽管您可能仅限于 XYZ 旋转顺序?)

  2. 创建一个变换节点。通过在节点 (例如 xyz、zyx 等)上设置旋转顺序标志来指定要使用的旋转顺序。使用 cmds.xform 为变换设置矩阵。现在只需使用 cods.getAttr 来读取旋转角度。

  3. 调用:MEulerRoation MEulerRoation::decompose(const MMatrix &matrix, RotationOrder ord),传入矩阵和所需的旋转顺序。

【讨论】:

  • 大家好,感谢您的回答。今天早上我可以确认这些数字完全错误。因为我从来没有这样做过,所以我假设它是正确的。但是在得到一些反馈并四处询问后,我可以确认它是错误的。我真的很抱歉浪费了你的时间。无论如何感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
  • 1970-01-01
  • 2019-07-07
  • 2011-01-01
相关资源
最近更新 更多