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

时间:2011-07-15 20:36:10

标签: c++ matrix transform eigen

对我来说这应该只是工作,所以事实并非如此,几乎可以肯定意味着我是错误的。尽管原则上是变换< double,3,Affine>与矩阵相同<双,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;

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

谢谢, 凸轮

1 个答案:

答案 0 :(得分:9)

只需写下:

m = m * rotMat.matrix();

我不知道Eigen是否隐含地定义了这个乘法,或者它是否会干扰该库的其他用例。