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)
为了保持我们的理智,拼图对象是沿着拼图块周长以逆时针方向(或顺时针方向,只要你的方向一致)行走定义的边列表。我想不出比一个小位图更好的方法了,即一个二维布尔数组,它指示使用的空间。嗯。。。我想了想。。。但是我有很多不同尺寸的作品,它们也是不规则的,就像这张照片。我也应该考虑旋转。。。你能帮我解决这个问题吗?