我有一个由3D点组成的数组,是一个std::vector<Eigen::Vector3d>
。
我需要使用位置和四元数来转换这些点。
我的问题是:
如何使用四元数旋转这些点?是否存在比以下方法更快的方法:
Eigen::Vector3d Trans; // position to move by
Eigen::Quaterniond quats; // quat to rotate by
for (int p = 0; p < objectPoints.size(); p++)
{
Eigen::Vector3d pnt;
//add pose
pnt.x = objectPointsTri[p].x + -Trans.x();
pnt.y = objectPointsTri[p].y + -Trans.y();
pnt.z = objectPointsTri[p].z + -Trans.z();
Eigen::Vector3d pntRot = // rotate pnt by the quaternion
}