• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jolucab

Rodar uma imagem

5 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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º).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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