Matrix 中的同时旋转

Jav*_*rez -1 c opengl

有人可以(再次)帮助我吗?我有一个这样的矩阵:

\n\n
1.0  0.0  0.0  2.5\n0.0  1.0  0.0  0.0\n0.0  0.0  1.0  0.0\n0.0  0.0  0.0  1.0\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何同时在X轴上旋转20\xc2\xb0,在Y轴上旋转-128\xc2\xb0,在Z轴上旋转72.1\xc2\xb0?

\n\n

非常感谢

\n

dat*_*olf 5

\n

我想同时在X轴上旋转\xe2\x80\xa6,在Y轴上旋转\xe2\x80\xa6,在Z轴上同时旋转\xe2\x80\xa6

\n
\n\n

你不能。你所要求的在数学上是不确定的。基本旋转的组合顺序有 6 种排列\xe2\x80\xa6

\n\n
    \n
  • XYZ
  • \n
  • 心智Y
  • \n
  • YXZ
  • \n
  • YZX
  • \n
  • ZXY
  • \n
  • ZYX
  • \n
\n\n

他们每个人都有不同的结果。轮换并不像你想象的那样工作。在数学上,3 维空间中的旋转形成一个特殊的 2 次酉群,也写为 SU(2)。SU(2) 中的每个旋转都是唯一的,但可以通过组合 SU(2) 中无数个其他旋转来构造。

\n\n

在您的具体情况下,没有特定的解决方案来解决该问题。您可以做的最好的事情是选择特定的执行顺序,并通过形成相应的旋转矩阵并乘以表示前一个坐标系/转换步骤的矩阵,将旋转依次应用到现有的坐标系上。

\n