如何在C++中创建一个网格,这将允许我将每个索引设置为一个向量,以便以后操作该向量,然后绘制它



我正在为一个类做一个项目,我必须找到空间中 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;

最新更新