0

我有一个可以沿 x、y 和 z 轴自由旋转的 3d 对象,然后将其保存为变换矩阵。在旋转顺序未知且对象旋转超过 3 次的情况下(例如:-如果我将对象旋转 x-60 度、y-30 度、z-45 度,然后再旋转 x->30 度),是否可以提取从变换矩阵旋转的角度?我知道如果旋转序列已知,则可以获得角度,但是如果我只有最终的变换矩阵而没有其他东西,是吗可以从变换矩阵中获得旋转的角度(x、y 和 z)吗?

4

1 回答 1

2

欧拉角转换是一个众所周知的话题。只需标准化矩阵方向向量,然后使用类似这个c 源代码的东西。

矩阵是事物的当前状态,它不知道过去的转换是什么。它不知道矩阵是如何构建的。您可以将矩阵放入并将其分解为您喜欢的任何部分,只要:

  1. 数据不重叠。例如:两个 X 转后彼此无法区分(无法知道它的 1 2 或三个不同的旋转相加)。
  2. 序列顺序已知
  3. 可以从数据中构建分解(例如可以测量规模)
于 2013-01-19T21:53:34.840 回答