Queremos rodar uma imagem 90 graus no sentido dos ponteiros do relógio. Atendendo à representação matricial, o que sabemos é que a coluna 1 passa linha 1, a coluna 2 a linha 2, e assim sucessivamente. É essa questão que o problema seguinte resolve.
01.
def
roda_90(imagem):
02.
imagem_aux
=
list()
03.
# transpõe
04.
for
coluna
in
range(len(imagem[
0
])):
05.
nova_linha
=
list()
06.
for
linha
in
imagem:
07.
nova_linha.append(linha[coluna])
08.
imagem_aux.append(nova_linha)
09.
# inverte dentro das linhas
10.
for
linha
in
range(len(imagem_aux)):
11.
imagem_aux[linha]
=
imagem_aux[linha][::
-
1
]
12.
13.
return
imagem_aux
A estratégia utilizada consistiu em dois passos: primeiro, transpusemos a matriz (linhas 4 a 8), de seguida invertemos os elementos em cada linha (linhas 10 e 11). Transpor uma matriz significa que o elemento na posição (i,j) passa para a posição (j,i).
Sem comentários:
Enviar um comentário