jolucab Posted December 5, 2009 at 01:32 PM Report Share #298776 Posted December 5, 2009 at 01:32 PM 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 Link to comment Share on other sites More sharing options...
Baderous Posted December 5, 2009 at 02:21 PM Report Share #298782 Posted December 5, 2009 at 02:21 PM Rodar 90º pode ser feito com a função transpose. Vê o seu código fonte para veres como foi feita. Rodar 180º é inverter as strings e a sua ordem. Link to comment Share on other sites More sharing options...
jolucab Posted December 5, 2009 at 03:41 PM Author Report Share #298803 Posted December 5, 2009 at 03:41 PM 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. Link to comment Share on other sites More sharing options...
Rui Carlos Posted December 5, 2009 at 04:16 PM Report Share #298808 Posted December 5, 2009 at 04:16 PM 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º). Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
jolucab Posted December 5, 2009 at 04:27 PM Author Report Share #298811 Posted December 5, 2009 at 04:27 PM 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 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now