这段代码的欧拉角阶是多少

Which euler angle order does this code result in?

本文关键字:多少 段代码 代码      更新时间:2023-10-16

使用数学库GLM,我使用此代码将欧拉角旋转组合为旋转矩阵。

#include <GLM/gtc/matrix_transform.hpp>
using namespace glm;
mat4 matrix = rotate(mat4(1), X, vec3(1, 0, 0))
            * rotate(mat4(1), Y, vec3(0, 1, 0))
            * rotate(mat4(1), Z, vec3(0, 0, 1));

这是否会导致XYZ或ZYX的欧拉角序列?我不确定,因为矩阵乘法的行为与标量乘法不一样。

请记住,在openGL中,矩阵计算使用一种称为向量列的符号(http://en.wikipedia.org/wiki/Column_vector)。因此,任何点变换都可以用线性方程组来表示,用向量列符号表示如下:

[p '] = M.[p],其中M = M1.M2.M3

这意味着应用于这些点的第一个变换,由向量[p]表示为M3,然后是M2,最后是M1。

回答你的问题,最终的欧拉角将是ZXY,一旦Z旋转变换是你写的最后一个矩阵来形成矩阵乘法。