对我来说,这应该只是工作,所以事实并非如此,几乎可以肯定意味着我是错的。尽管原则上 Transform< 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;
结果在最后一行出现'no match for operator='错误,并且就地乘法运算符导致相同的结果,尝试使用 Affine3d 初始化 Matrix4d 也不起作用。有人知道如何以任何有用的方式实际使用 Transform 类吗?
谢谢,凸轮