【问题标题】:Multiplying Transform and Matrix types in Eigen在 Eigen 中乘以变换和矩阵类型
【发布时间】:2011-10-06 11:20:30
【问题描述】:

对我来说这应该正常工作,所以事实上它没有,几乎可以肯定意味着我是错的。尽管原则上 Transform 与 Matrix 相同,但它们不能合理地一起使用:

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;

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

谢谢, 凸轮

【问题讨论】:

    标签: c++ matrix transform eigen


    【解决方案1】:

    只写:

    m = m * rotMat.matrix();
    

    我不知道 Eigen 没有隐式定义这种乘法是否是一种疏忽,或者它是否会干扰库的其他用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      相关资源
      最近更新 更多