我无法理解如何在函数中设置转换 t:
pcl::addCoordinateSystem(double scale, const Eigen::Affine3f & t, int viewport = 0))
所以问题是:我如何定义一个Eigen::Affine3f
?
我有旋转矩阵和平移向量。
我无法理解如何在函数中设置转换 t:
pcl::addCoordinateSystem(double scale, const Eigen::Affine3f & t, int viewport = 0))
所以问题是:我如何定义一个Eigen::Affine3f
?
我有旋转矩阵和平移向量。
如果您在单独的对象中进行旋转和平移,您可以执行以下操作:
Affine3f t;
t.linear() = ...;
t.translation() = ...;
或者:
t.fromPositionRotationScale(pos, rot, Vector3f::Ones());
知道旋转和平移矩阵后,可以将它们组合到 Affine3f。
Eigen::Affine3f tt;
tt = Eigen::Translation3f(100.,300.,0.) * Eigen::AngleAxis<float>(theta,axis);
请注意,这里的Eigen::Translation3f
andEigen::AngleAxis3f
不是矩阵,而是抽象类型 Transform 的矩阵。