为此,我一直在网上搜索,虽然我发现很多解决方案似乎都不同所以:
请有人能给我一个简明的解释,说明如何从matrix4结构中提取旋转数据,即xyz。
据我所知,矩阵4用于保存有关平移,缩放和旋转的信息,但就其本身而言。我正在为iOS编码并使用GLKit。
答案 0 :(得分:1)
并非所有的线性变换都是旋转;并非所有旋转都可以表示为欧拉角。欧拉角表示也不是唯一的 - 两者都是平凡的(例如,角度α和角度α+ 360是相同的)而不是如此(例如,当轴是混叠的时)。由于欧拉角表示仅涵盖可能旋转的子集,而旋转仅是可能矩阵的子集,因此转换并非总是可行。
但是,如果您只谈论旋转矩阵的一小部分子集,并且可以用欧拉角表示this is probably the paper for you。这开始于观察到只有一个角度对第一列中的第三个值有贡献,然后使用消除和三角形身份来找到其余的。它讨论了在确定下一个角度时需要管理多个可能解决方案的实例。