cma*_*t85 7 c++ transform matrix eigen
对我而言,这应该是有效的,所以事实并非如此,几乎可以肯定,这意味着我是错误的.尽管原则上变换<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
写吧:
m = m * rotMat.matrix();
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是一个疏忽,Eigen没有隐含地定义这个乘法,或者它是否会干扰库的其他用例.