C ++命名空间FW;矩阵乘法

时间:2013-09-15 09:06:09

标签: c++ opengl nvidia

我正在尝试实现一些基本的矩阵乘法,用于翻译。 在我看来,乘法应该有效,但我得到了这个错误。

  

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);

1 个答案:

答案 0 :(得分:1)

矩阵与矢量相乘的结果是矢量(不是矩阵)。所以这个

World *= Vec4f(translation_, 1, 1, 1);

毫无意义。那会更像是

Vec4f r = World * Vec4f(translation_, 1,1,1);

我的建议:让你的线性代数抛光。