我有一条多段线,我需要用常量来偏移它。假设有一条多段线代表一条高速公路的中心线,我需要偏移/平行这条中心线50个单位(向左)和-50个单位(向右)来创建车道。
我可以使用什么函数来执行此偏移/并行事务处理?我认为我应该使用MatrixXd或ArrayXd来存储多段线点?但也许有一个更好的对象来存储这些?我应该使用transpose()方法来实现我的并行操作吗?请注意,多段线点是二维的,而不是三维的。
发布于 2018-05-23 20:37:55
这真的取决于你要用这些点做什么。如果想要限制行/列数,也可以使用Matrix2Xd或MatrixX2d。我不知道折线上的效果,但如果你只想给每个点添加一个常量向量,你可以按行或按列添加:
#include <iostream>
#include <Eigen/Core>
using namespace Eigen;
int main()
{
MatrixXd mat(5, 2);
VectorXd vec(2);
vec << 10., 20;
mat.setRandom();
std::cout << mat << "\n\n";
mat.rowwise() += vec.transpose();
std::cout << mat << "\n\n";
return 0;
}发布于 2018-05-23 20:40:41
必须计算多段线上每个点的一阶导数(切线)。只有这样,任何平行的平移,在某一点的切线才有意义。
https://stackoverflow.com/questions/50488287
复制相似问题