Se estás a fazer um projeto em Haskell e queres adicionar uma interface gráfica, então provavelmente deparaste-te com a biblioteca de Gloss que, apesar de não ser perfeita, tem bastantes funcionalidades que são suficientes para fazer um trabalho impressionante.
Neste guia, vamos ajudar-te a dar aquele primeiro passo para conheceres esta ferramenta e também algumas dicas pelo caminho.
Estes são os imports que vamos usar ao longo de todo o guia.
import Graphics.Gloss
import Graphics.Gloss.Interface.Pure.Game
import Graphics.Gloss.Juicy
import Data.Maybe
Vamos começar por desenhar uma linha simples usando a função display.
display :: Display -> Color -> Picture -> IO ()
Para isso, vamos precisar de um **Display,** que é a janela onde a imagem vai ser desenhada, uma cor de fundo e uma Picture.
No displayMode temos o tipo (InWindow), nome da janela (“Game”), tamanho da janela (640,640) e posição no ecrã (o canto superior esquerdo (0,0)).
Nota: O displayMode também poderia ser apenas FullScreen.
displayMode :: Display
displayMode = InWindow "Game" (640,640) (0,0)
Existem vários tipos de figuras que o Gloss nos permite desenhar. Neste caso, vamos desenhar uma linha que possui um caminho, sendo este um array de pontos que delimita a figura.
linePic :: Picture
linePic = Line [((-100),(-100)),((-100),100),(100,100),(100,(-100)),((-100),(-100))]
Finalmente, podemos invocar a função display com todas as funções definidas anteriormente.
main :: IO()
main = do display displayMode white linePic