【发布时间】:2020-07-23 00:46:06
【问题描述】:
我目前正在试验 OpenGL,我遇到了一种情况,我想找到 4x4 矩阵 x 其中 x * mat1 = mat2 (我认为是列主要顺序。其中 x * mat1 表示应用转换mat1,然后是x。)。
自然想到解决办法可能是x = mat2 / mat1,于是用glm试了一下。它奏效了!以下 sn-p 将输出 true。
glm::mat4 mat1 = glm::translate(glm::vec3{1,2,3});
glm::mat4 mat2 = glm::scale(glm::vec3{-1,-2,-3});
glm::mat4 x = mat2 / mat1;
std::cout << ((x * mat1) == mat2) << std::endl;
但后来,我意识到mat1 * x != x * mat1!
这有什么意义? mat2 / mat1 会模棱两可!我的除法解决方案对于找到 x 是否令人满意或有任何警告? (同样,我的目标是拥有x * mat1 = mat2)
【问题讨论】:
标签: c++ linear-algebra glm-math