Haskell Language
Grafica con Gloss
Ricerca…
Installare Gloss
La lucentezza si installa facilmente usando lo strumento Cabal. Avendo installato Cabal, si può eseguire il cabal install gloss
di installazione della cabina per installare Gloss.
In alternativa il pacchetto può essere compilato dal sorgente, scaricando l'origine da Hackage o GitHub e facendo quanto segue:
- Entra nella directory
gloss/gloss-rendering/
ecabal install
- Inserire la directory
gloss/gloss/
e ancora una voltacabal install
Ottenere qualcosa sullo schermo
In Gloss, è possibile utilizzare la funzione di display
per creare una grafica statica molto semplice.
Per utilizzarlo è necessario prima import Graphics.Gloss
. Quindi nel codice ci dovrebbe essere il seguente:
main :: IO ()
main = display window background drawing
window
è di tipo Display
che può essere costruita in due modi:
-- Defines window as an actual window with a given name and size
window = InWindow name (width, height) (0,0)
-- Defines window as a fullscreen window
window = FullScreen
Qui l'ultimo argomento (0,0)
in InWindow
indica la posizione dell'angolo in alto a sinistra.
Per versioni precedenti alla 1.11: nelle versioni precedenti di Gloss FullScreen
prende un altro argomento che è inteso come la dimensione del frame che viene disegnato su cui a sua volta viene esteso a dimensione schermo intero, ad esempio: FullScreen (1024,768)
background
è di tipo Color
. Definisce il colore di sfondo, quindi è semplice come:
background = white
Quindi arriviamo al disegno stesso. I disegni possono essere molto complessi. Come specificare questi saranno trattati altrove ([uno può riferirsi a questo per il momento] [1]), ma può essere semplice come il seguente cerchio con un raggio di 80:
drawing = Circle 80
Esempio di riepilogo
Come più o meno affermato nella documentazione di Hackage, ottenere qualcosa sullo schermo è facile come:
import Graphics.Gloss
main :: IO ()
main = display window background drawing
where
window = InWindow "Nice Window" (200, 200) (0, 0)
background = white
drawing = Circle 80