2012-07-04 2 views
2

Итак, я хочу сравнить один двумерный массив с другим 2-мерным массивом (фактически частью других больших 2-мерных массивов). Что мне нужно сделать, так это сравнить первый массив со вторым, но мне также нужно сравнить его с несколькими ракурсами, вращая один из них, если хотите.Вращающиеся многомерные массивы

Я пишу это в 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 Я решил это wtf. Будет опубликован, как только я пойму, что код, как это обычно бывает, 5 мая. Я так сумасшедший!)

+1

реверсирование моих петель? –

+0

Довольно хороший вопрос. Однако тег нечетный. – thb

+0

просто из любопытства: для чего это? что делает программное обеспечение в целом? – clamp

ответ

0

Lol. Интересная проблема. Я тоже хочу попробовать. Попробуйте прочитать в матрицах вращения. Они немного прямолинейны, когда дело доходит до вращения всех матриц, и если угол поворота сильно касается вас.

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

+0

Мне нужно только 0, 90, 180, 270, 360 углов, спасибо Богу! Я зачитаю его позже, спасибо за подсказку; P –

Смежные вопросы