Итак, допустим, у меня есть следующая матрица/массив -Есть ли простой способ повернуть значения матрицы/массива?
[0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0 0
0 0 1 1 1 1 1 1 0 0 0 0
0 0 1 1 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0]
Было бы довольно тривиально, чтобы написать что-то, что бы перевести эти значения вверх и вниз. Что, если бы я хотел повернуть его на угол, который не кратен 90 градусам? Я знаю, что, очевидно, невозможно получить ту же самую форму (сделанную из 1s) из-за природы сетки. Идея, которая приходит на ум, заключается в преобразовании каждого значения 1 в вектор координат. Тогда это будет означать поворот координат (что должно быть проще) относительно точки. Затем можно было написать что-то, что бы взяло координаты, и сравнить их с матричной сеткой, и если в правом поле есть точка, она будет заполнена. Я знаю, что мне также придется найти центр, вокруг которого можно повернуть.
Это кажется разумным способом сделать это? Если у кого-то есть лучшая идея, я все уши. Я знаю, что с небольшой сеткой, подобной этой, форма, вероятно, будет совершенно иной, однако, если бы у меня была большая форма, представленная 1 сек, то в большой сетке разница между представлениями была бы меньше.