对我来说,这应该能正常工作,但事实并非如此,几乎可以肯定是我错了。尽管原则上 Transform
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 类吗?
谢谢, 凸轮
最佳答案
随便写:
m = m * rotMat.matrix();
我不知道 Eigen 没有隐式定义这个乘法是否是一种疏忽,或者它是否会干扰库的其他用例。
关于c++ - 在 Eigen 中乘以变换和矩阵类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6712867/