1

我无法理解如何在函数中设置转换 t:

pcl::addCoordinateSystem(double scale, const Eigen::Affine3f & t, int viewport = 0))

所以问题是:我如何定义一个Eigen::Affine3f

我有旋转矩阵和平移向量。

4

2 回答 2

1

如果您在单独的对象中进行旋转和平移,您可以执行以下操作:

Affine3f t;
t.linear() = ...;
t.translation() = ...;

或者:

t.fromPositionRotationScale(pos, rot, Vector3f::Ones());
于 2013-08-26T21:42:00.073 回答
1

知道旋转和平移矩阵后,可以将它们组合到 Affine3f。

Eigen::Affine3f tt;
tt = Eigen::Translation3f(100.,300.,0.) * Eigen::AngleAxis<float>(theta,axis);

请注意,这里的Eigen::Translation3fandEigen::AngleAxis3f不是矩阵,而是抽象类型 Transform 的矩阵。

于 2015-04-01T17:06:41.910 回答