Matrix4f 类型转 QMatrix4x4类型
时间: 2023-12-14 22:39:11 浏览: 273
可以通过以下代码将Eigen库中的Matrix4f类型转换为Qt库中的QMatrix4x4类型:
```c++
#include <Eigen/Dense>
#include <QtGui/QMatrix4x4>
QMatrix4x4 toQMatrix4x4(const Eigen::Matrix4f& matrix) {
QMatrix4x4 qMatrix(matrix.data());
return qMatrix.transposed();
}
```
这里使用了Qt库中的QMatrix4x4构造函数,将Eigen库中的Matrix4f数据传递给QMatrix4x4。但需要注意的是,Eigen库和Qt库的矩阵数据排列方式不同,因此需要对QMatrix4x4进行转置操作。
相关问题
Matrix4f转QMatrix4x4
可以使用QMatrix4x4的构造函数将Matrix4f转换为QMatrix4x4,如下所示:
```cpp
QMatrix4x4 qMatrix(matrix(0,0), matrix(0,1), matrix(0,2), matrix(0,3),
matrix(1,0), matrix(1,1), matrix(1,2), matrix(1,3),
matrix(2,0), matrix(2,1), matrix(2,2), matrix(2,3),
matrix(3,0), matrix(3,1), matrix(3,2), matrix(3,3));
```
其中,matrix表示Matrix4f对象,matrix(i,j)表示矩阵中第i行第j列的元素。
assimp中Matrix4f转QMatrix4x4
你可以使用以下代码将Assimp库中的Matrix4f转换为Qt库中的QMatrix4x4:
```
#include <QMatrix4x4>
#include <assimp/matrix4x4.h>
QMatrix4x4 AssimpMatrix4fToQMatrix4x4(const aiMatrix4x4& m)
{
return QMatrix4x4(
m.a1, m.b1, m.c1, m.d1,
m.a2, m.b2, m.c2, m.d2,
m.a3, m.b3, m.c3, m.d3,
m.a4, m.b4, m.c4, m.d4
);
}
```
你可以将Assimp中的Matrix4f类型转换为aiMatrix4x4类型,然后将其传递给上面的函数,它将返回与之相对应的QMatrix4x4。
阅读全文