2012-07-04 40 views
2

所以我想一个2维阵列比较与另一个2维阵列(另一个较大的2维数组的acctually部分)。我需要做的是将第一个数组与第二个数组进行比较,但我也需要从多个角度进行比较,如果您愿意,可以旋转其中的一个角度。旋转多维数组

我用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个边,并查看它们是否匹配。我会重复这几百次,以找到一个体面的样本位置,随机选择的小地图样本与大地图进行正面比较。

基本上...... :)

大气压我想弄明白,但我不想重新发明轮子,如果我能帮助它。我认识到,我实际上需要旋转小网格8次,我需要匹配每一面镜子! UPDATE2:lol我解决了它跆拳道。只要我明白什么后会发布代码acctually呢,不如。凌晨5点我疯了这个样子!)

+1

颠倒我的for-loops? –

+0

很好的问题。但标签很奇怪。出于好奇: – thb

+0

这是什么?整个软件在做什么? – clamp

回答

0

大声笑。有趣的问题。我也想尝试一下。尝试阅读旋转矩阵。当涉及旋转整个矩阵时,它们有点直接,如果旋转角度非常关注你。

http://en.wikipedia.org/wiki/Rotation_matrix

+0

我只需要0,90,180,270,360个角度感谢上帝!稍后我会阅读它,谢谢你的提示; P –