这段代码的欧拉角阶是多少
Which euler angle order does this code result in?
使用数学库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旋转变换是你写的最后一个矩阵来形成矩阵乘法。
相关文章:
- 在java中解决这段代码时面临循环中的问题
- 我是如何在这段代码中出现分段错误的
- 我不明白这段代码是如何对这个pythonlist()进行排序的,也不明白如何用C++中的向量来重现它
- 为什么这段代码不起作用,我该如何解决?
- 为什么这段代码给我错误? 有没有自错?
- 有人可以解释一下这段代码如何能够反转字符串
- 可能我知道为什么这段代码没有给出任何输出吗?
- 这段代码的最后一行在做什么?
- 我不知道为什么这段代码会让核心被转储?
- 我试图用这段代码找到二叉树的高度,但它一直返回 0,有人可以告诉我为什么吗?
- 有人可以向我解释一下这段代码的作用吗?
- 存储在哪个内存段(代码/数据段)类(员工)中?
- 为什么这段代码会导致无限循环?
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 如何为一段代码启用 -permissive
- 谁能告诉我为什么这段代码没有产生正确的输出?
- 我想反转我的阵列.为什么这段代码给出垃圾值?
- 使用Qt Creator在调试模式下编译一段代码
- 这段代码创建了多少个变量C的副本
- 这段代码的欧拉角阶是多少