如何使用具有特征库的俯仰,偏航,滚动创建旋转矩阵?
对我而言,这应该是有效的,所以事实并非如此,几乎可以肯定,这意味着我是错误的.尽管原则上变换<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
如何在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)
但它并不优雅.=)你的建议是什么?