所以我想比较一个二维数组和另一个二维数组(实际上是另一个更大的二维数组的一部分)。我需要做的是将第一个数组与第二个数组进行比较,但我还需要从多个角度对它进行比较,如果愿意,可以旋转其中一个。
我是用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次,我需要匹配每个镜子! UPDATE2:大声笑我解决了它的重量。一旦我理解了代码的实际功能,我会尽快发布。早上5点我这样疯了!)
答案 0 :(得分:0)
洛尔。有趣的问题。我也想尝试一下。尝试阅读旋转矩阵。在旋转整个矩阵时,如果旋转角度对你很重要,它们会有点直截了当。