c++ - GLM : How to transpose a vector?

标签 c++ vector glm-math

也许我只是在文档中遗漏了一些东西,但似乎 GLM 不可能进行 vector 的转置。我也看不到 mat3x1 或 mat1x3 类型。 glm::transpose 也不适用于 vector 。我是否遗漏了什么,或者这只是 GLM 中缺少的功能?

最佳答案

GLM 基于 GLSL,其中根本不需要转置 vector 。如果你做 vector/矩阵乘法,它会以适合矩阵大小的方式乘以 vector (除非它必须改变乘法的顺序)。因此,如果您有一个 mat4 并执行 mat4*vec4,您的 vec4 将被视为列 vector 。如果你执行 vec4*mat4,它被认为是一个行 vector 。如果你执行 mat2x4*vec4,你会得到一个错误,而 vec4*mat2x4 工作(作为行 vector )。

所以一般来说,没有理由需要“转置”一个 vector 。系统只会做任何有效的事情。

关于c++ - GLM : How to transpose a vector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9863875/

相关文章:

c++ - 位域和字节顺序

c++ - 警告 : #warning qopenglfunctions. h 与 GLEW 不兼容,GLEW 定义将未定义 [-Wcpp]

c++ - 我们可以声明一个结构体符合一个概念吗?

c++ - vector vector 的段错误

C++ vector.push_back 添加一次对象时添加两次对象

c++ - GLM::Rotate 似乎导致错误的旋转?

c++ - SDL 与 WSL

c++ - qmake 同时启用 clang++ 和 g++

Numpy 提取网格数据的子集

c++ - OpenGL 透视相机