如何在网格内拟合图形?

时间:2018-10-27 07:36:23

标签: c++ grid graph-theory

我的问题是我们是否有图并且每个节点都知道其坐标。我们如何将图形放置在网格中,以便每个边都知道它经过的网格。我们可以比较网格的接近度。

我认为网格结构应如下所示:

typedef std::pair<int, int> Point;
class Grid
{
int size;

public:
vector<vector<Point>> grid;

Grid(int size) :size(size), grid(size, vector<Point>(size)) 
{
    for (size_t y = 0; y < grid.size(); y++)
    {
        vector<Point> loc;
        for (size_t x = 0; x < grid[y].size(); x++)
        {
            loc.push_back({ x, y });
        }
        grid[y] = loc;
    }
 }
};

我得到的图是

class Graph
{
  int V; // No. of vertices’

public:
  int getV() { return V; }


   std::vector<int>* parents;
   std::vector<int>* childs;

   std::map<int, Point> nodes_location;

   Graph(){}

   Graph(int V) // Constructor
   {
        parents = new std::vector<int>[V];
        childs = new std::vector<int>[V];
   }; 

   void Insert_Node(int u, int v)
   {
       childs[u].push_back(v);
       parents[v].push_back(u);
   }

}

假定网格的大小是已知的(即5 * 5)。有办法将两者结合吗?

我们非常感谢您,谢谢。

致谢。

0 个答案:

没有答案