c++ - 按常量偏移多段线

标签 c++ eigen

我有一条多段线,需要用一个常量进行偏移。想象一条代表高速公路中心线的折线,我需要将这条中心线偏移/平行 50 个单位(向左)和 -50 个单位(向右)以创建车道。

我可以使用什么函数来执行此偏移/并行转换?我相信我应该使用 MatrixXdArrayXd 来存储折线点?但也许有更好的对象来存储这些?我应该使用 transpose() 方法来实现我的并行操作吗?请注意折线点是 2d 而不是 3d。

最佳答案

这真的取决于您要用这些积分做什么。如果您想限制行数/列数,您也可以使用 Matrix2XdMatrixX2d。我不知道对多段线的影响,但如果您只想向每个点添加一个常数 vector ,您可以按行或按列添加:

#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;
}

关于c++ - 按常量偏移多段线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50488287/

相关文章:

c++ - Doxygen 提示采用相同模板但具有不同模板参数的重载函数

c++ - Eigen 和 boost::serialize

c++ - 如何计算 Eigen VectorXi 中交集和并集的元素数量?

c++ - 稀疏矩阵上的 block 操作 - Eigen Toolbox - C++

c++ - 循环检查约定

c++ - “warning: not all control paths return a value”是什么意思? (C++)

c++ - 如何声明在不同命名空间中定义的结构?

c++ - C++ 中的 "ABC"和字符串 ("ABC") 有什么区别?

c++ - 如何在 Eigen 中近似比较 vector ?

c++ - 采用恒定特征参数的重载函数的歧义