Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 用什么样的智能数据结构来表示解剖拼图的各个部分?_Algorithm_Search_Data Structures_Puzzle - Fatal编程技术网

Algorithm 用什么样的智能数据结构来表示解剖拼图的各个部分?

Algorithm 用什么样的智能数据结构来表示解剖拼图的各个部分?,algorithm,search,data-structures,puzzle,Algorithm,Search,Data Structures,Puzzle,我应该保留一些解剖拼图的碎片并搜索它以找到解决方案。 搜索和知情搜索。我应该找到一个好办法 用什么样的智能数据结构来表示这个解剖难题的各个部分?我的解剖难题类似于这些图片:受图形的影响以及使用OpenGL时对象的表示方式,我将创建一组所有线段(边),每个线段都有一个称为(顶点)的(x,y)端点列表和该边的唯一指示器: edge followed by its (x,y) vertices ____ ____________________________________ 0

我应该保留一些解剖拼图的碎片并搜索它以找到解决方案。 搜索和知情搜索。我应该找到一个好办法


用什么样的智能数据结构来表示这个解剖难题的各个部分?我的解剖难题类似于这些图片:

受图形的影响以及使用OpenGL时对象的表示方式,我将创建一组所有线段(边),每个线段都有一个称为(顶点)的(x,y)端点列表和该边的唯一指示器:

edge    followed by its (x,y)  vertices
____    ____________________________________
0       (2,3)  (3,7)  
1       (3,9)  (11,9)
2       (22,9)  (22,7)
...      ....
然后,分别为拼图的每个不规则形状定义一个定义其边界的边列表

shape    list of edges which define its boundary
____     _________________________________________
0        3,  1,   5,  8
1        7,  2,  4,  10,  4,  20
因此,在上面的示例中,形状编号0(拼图块)由四条边定义:3,1,5,8,因此将是一个四边形对象(每边始终是一条边)

边1由其线段任一端的(x,y)端点定义(所有边仅具有两个端点),在示例中,其x&y值为(2,3)和(3,7)


为了保持我们的理智,拼图对象是沿着拼图块周长以逆时针方向(或顺时针方向,只要你的方向一致)行走定义的边列表。

我想不出比一个小位图更好的方法了,即一个二维布尔数组,它指示使用的空间。嗯。。。我想了想。。。但是我有很多不同尺寸的作品,它们也是不规则的,就像这张照片。我也应该考虑旋转。。。你能帮我解决这个问题吗?