相关疑难解决方法(0)

使用Eigen创建具有俯仰,偏航,滚动的旋转矩阵

如何使用具有特征库的俯仰,偏航,滚动创建旋转矩阵?

c++ math rotation matrix eigen

13
推荐指数
4
解决办法
2万
查看次数

在特征中乘以变换和矩阵类型

对我而言,这应该是有效的,所以事实并非如此,几乎可以肯定,这意味着我是错误的.尽管原则上变换<double,3,Affine>与Matrix <double,4,4>相同,但它们不能合理地使用:

Affine3d rotMat( AngleAxisd( 45.0, ( Vector3d() << 0.0, 1.0, 0.0 ).finished() ) );
Matrix4d m;
m << 1.0, 0.0, 0.0, 6.0,
     0.0, 1.0, 0.0, 6.0,
     0.0, 0.0, 1.0, 6.0,
     0.0, 0.0, 0.0, 1.0;

m = m * rotMat;
Run Code Online (Sandbox Code Playgroud)

导致最后一行的'不匹配运算符='错误,并且就地乘法运算符导致相同,尝试使用Affine3d初始化Matrix4d也不起作用.有人知道如何以任何有用的方式实际使用Transform类吗?

谢谢,Cam

c++ transform matrix eigen

7
推荐指数
1
解决办法
3747
查看次数

如何在Eigen中转换矩阵(4x4)?

如何在Eigen中转换矩阵(4x4)?

//identity matrix 4x4
/*type=*/Eigen::Matrix<float, 4, 4> /*name=*/result = Eigen::Matrix<float, 4, 4>::Identity();

//translation vector
// 3.0f
// 4.0f
// 5.0f
Translation<float, 3> trans(3.0f, 4.0f, 5.0f);
Run Code Online (Sandbox Code Playgroud)

即,我有矩阵:

1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0

我想得到:

1.0 0.0 0.0    3.0
0.0 1.0 0.0    4.0
0.0 0.0 1.0    5.0
0.0 0.0 0.0 1.0

对?我怎么能这样做?

我可以做这个:

result(0, 3) = 3.0f;
result(1, 3) = 4.0f;
result(2, 3) = 5.0f;
Run Code Online (Sandbox Code Playgroud)

但它并不优雅.=)你的建议是什么?

c++ translation matrix eigen

4
推荐指数
2
解决办法
7178
查看次数

标签 统计

c++ ×3

eigen ×3

matrix ×3

math ×1

rotation ×1

transform ×1

translation ×1