作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一条多段线,需要用一个常量进行偏移。想象一条代表高速公路中心线的折线,我需要将这条中心线偏移/平行 50 个单位(向左)和 -50 个单位(向右)以创建车道。
我可以使用什么函数来执行此偏移/并行转换?我相信我应该使用 MatrixXd
或 ArrayXd
来存储折线点?但也许有更好的对象来存储这些?我应该使用 transpose()
方法来实现我的并行操作吗?请注意折线点是 2d 而不是 3d。
最佳答案
这真的取决于您要用这些积分做什么。如果您想限制行数/列数,您也可以使用 Matrix2Xd
或 MatrixX2d
。我不知道对多段线的影响,但如果您只想向每个点添加一个常数 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/
我是一名优秀的程序员,十分优秀!