我正在为一个类做一个项目,我必须找到空间中 2 个物体的 5 个拉格朗日点。这个项目应该是一个寻根练习,但我在为这个项目的网格部分制定计划时遇到了麻烦。
我不知道构建某种网格的最佳方法是什么,然后让该网格中的每个单元格包含 2 个数据点,一个 x 方向和大小以及一个 y 方向和大小。
然后,我想使用这些值并从中绘制一个向量。 即,如果在 (x,y)=(-5,0) 处有一个值为 (0,-2) 的单元格,它将位于原点 5 个空格的左侧,并直接指向 2 个空格。
我不是在寻找在这里编写代码的人,我只是需要一些帮助来解决这个问题。
一种方法是使用std::pair<int, int>
来表示一个点。
默认std::pair
运算符 = 应正确处理 int 的比较。
假设每个点都有一个双精度的原始值。代码可能如下所示
typedef std::pair<int, int> Point;
std::map<Point, double> raw_data;
for (int row = -5; row <= 5; ++row) {
for (int col = -5; col <= 5; ++col) {
raw_data.emplace(Point(row, col), 10000000);
}
}
std::cout << raw_data.at(Point(3, 2)) << std::endl;