我正在尝试实现一些基本的矩阵乘法,用于翻译。 在我看来,乘法应该有效,但我得到了这个错误。
binary'* =':找不到采用'FW :: Vec4f'类型的右手操作数的运算符(或者没有可接受的转换)
这是我的代码,使用std和FW namepsace
Mat4f World;
float x, y, z;
World.setCol(0, Vec4f(1, 0, 0, x));
World.setCol(1, Vec4f(0, 1, 0, y));
World.setCol(2, Vec4f(0, 0, 1, z));
World.setCol(3, Vec4f(0, 0, 0, 1));
World *= Vec4f(translation_, 1, 1, 1);
答案 0 :(得分:1)
矩阵与矢量相乘的结果是矢量(不是矩阵)。所以这个
World *= Vec4f(translation_, 1, 1, 1);
毫无意义。那会更像是
Vec4f r = World * Vec4f(translation_, 1,1,1);
我的建议:让你的线性代数抛光。