所以我想将一个二维数组与另一个二维数组(实际上是另一个更大的二维数组的一部分)进行比较。我需要做的是将第一个数组与第二个数组进行比较,但我还需要从多个角度进行比较,如果你愿意,可以旋转其中一个。
我正在用 C++ 编写这个并且我正在使用向量(如果有特定的算法或函数可以帮助这些)
这是我需要做的一个例子:
Take this map:
0001000
0001000
0001000
0001111
0000000
Compare it to this (which means if 1 is road and 0 is grass, this would help
me find 'turns' in the road):
010
110
000
Comparing it like that won't yield any results, BUT, if I rotate it to 180
degrees:
010
011
000
It fits.
更具体地说,我会将一大堆小数组与大数组进行比较。我不会比较大阵列上的每个位置,只随机选择一个位置和一个小阵列,将小阵列旋转到所有 4 个边,看看它们是否匹配。我将重复此操作数百次,以找到一个不错的位置样本,其中随机选择的小地图样本与大地图相比呈正比。
基本上... :)
Atm 我正在努力解决这个问题,但如果我能帮上忙,我不想重新发明轮子。
(更新:接近解决这个问题!我意识到我实际上需要将较小的网格旋转 8 次,我需要匹配每个镜像!更新 2:大声笑我解决了这个问题。一旦我理解了代码的实际作用,我就会发布,也可以。早上 5 点我就这样疯了!)