Ir para o conteúdo
jolucab

Rodar uma imagem

Mensagens Recomendadas

jolucab    0
jolucab

Ola pessoal!

Tenho uma dúvida. Quem poderá orientar-me como rodar uma imagem em haskell a 90 ou a 180 graus.

A imagem é essa:

type Picture = [string]

p::Picture

p= ["......",

    ".####.",

    ".#..#.",

    ".####.",

    ".#....",

    ".#...."]

Eu quero fazer esta função assim definida : rotate90 :: Picture -> Picture

Logicamente percebo o que fazer, mas não sei como fazer e quero uma ilucidação.

Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jolucab    0
jolucab

Obrigado.

o unico problema dessa função é que roda 90º para a direita e eu precisava que ele rodasse para a esquerda.

mas vou estudar essa função e fazer a sua inversa para ver se funciona.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Acho que o resultado do transpose não será uma rotação. Deve ser necessário ainda inverter as listas.

De qualquer forma, uma rotação de 90º=-270º=3*(-90º). Ou seja, basta aplicar 3 vezes a função que faz uma rotação de -90º para se obter uma rotação de 90º. Obviamente que 180º=-180º=2*(-90º).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jolucab    0
jolucab

Obrigado. Ja resolvi o problema aplicando o reverse ao transpose  ;)

Muito obrigado pela ajuda.

EDIT:

Tenho outra duvida.

Como ampliar uma imagem em haskell, dado uma scale.

-- a ampliação da imagem n vezes (scale 0 é uma imagem vazia)

-- pre: n>=0

scale :: Int -> Picture -> Picture

obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade