错误:没有匹配的函数可以调用“ QGenericMatrix <4,3,float> :: QGenericMatrix(const float&,const float&,...,float)”

时间:2018-08-25 08:23:31

标签: c++ qt

我正在构建如下矩阵:

QMatrix4x3 floatPos4x3 = QMatrix4x3( floatPos0.at(0), floatPos1.at(0), floatPos2.at(0),
                                     floatPos0.at(1), floatPos1.at(1), floatPos2.at(1),
                                     floatPos0.at(2), floatPos1.at(2), floatPos2.at(2),
                                     float(1)       , float(1)       , float(1)        );

但是我得到了错误:

  

错误:没有匹配函数可调用'QGenericMatrix <4,3,float> :: QGenericMatrix(const float&,const float&,const float&,const float&,const float&,const float&,const float&,const float&,const float& ,float,float,float)'

我只是想在矩阵的最后一行中设置1.0的常量浮点值,该怎么办?

1 个答案:

答案 0 :(得分:1)

QMatrix4x3QGenericMatrix<4, 3, float>的typedef。如documentation中所述, QGenericMatrix 的构造函数期望这些值作为数组。

因此,我的解决方法是:

float values[] = {
    floatPos0.at(0), floatPos1.at(0), floatPos2.at(0),
    floatPos0.at(1), floatPos1.at(1), floatPos2.at(1),
    floatPos0.at(2), floatPos1.at(2), floatPos2.at(2),
    float(1)       , float(1)       , float(1)
};

QMatrix4x3 floatPos4x3(values);