|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2011
Messaggi: 13
|
[Haskell][Gloss] Generare una lista di Picture
Ciao a tutti!
devo implementare della grafica in Haskell usando Gloss. Ho una lista di dati e in base al valore dell'elemento nella lista devo "disegnare" qualcosa di diverso (per esempio dei rettangoli di colore diverso) Questo è il codice che devo implementare: Codice:
drawSystem :: Dati -> Picture Quello che ho scritto per ora è: Codice:
drawSystem :: Dati -> Picture drawSystem dati = Pictures $ lista dati Tuttavia il compilatore ghc mi da errore dicendomi non posso mettere una lista in Pictures. Ogni aiuto è gradito.....
__________________
http://sic-oding.blogspot.com/ |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
dovresti mostrare che codice stai usando o perlomeno quali librerie, altrimenti e' impossibile capire.
Ad esempio quel "Pictures" da dove arriva ?
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Nov 2011
Messaggi: 13
|
Ecco:
Codice:
import Graphics.Gloss import Graphics.Gloss.Interface.Simulate drawSystem :: Dati -> Picture drawSystem dati = Pictures $ listPicture (lista dati) runVM :: System -> IO () runVM s = simulateInWindow "GAME" (700, 560) (50, 50) black 1 s drawSystem (\_ _ s -> step s) listPicture :: [Dato] -> [Picture] listPicture [] = Blank listPicture (s : sc) | (instruction s) == DAT = (Color white (Line [(fromIntegral (20), -10), (fromIntegral((20) + 20), -10)])) : (listPicture sc) | otherwise = Blank + listPicture sc Sbaglio forse a creare la lista in modo ricorsivo? O altrove?
__________________
http://sic-oding.blogspot.com/ |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Ops, mi era sfuggito che nel titolo menzionavi Gloss...
Riesci a riportare l'errore preciso ?
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Nov 2011
Messaggi: 13
|
Risolto.
Praticamente quando voglio creare una lista di Picture scrivo questo: Codice:
metodo (_ : _) = Pictures[Blank] metodo (head : tail) = Pictures[ "qui va la creazione di un immagine", metodo tail] ![]() Spero inoltre che la soluzione da me trovata possa essere d'aiuto a qualcun'altro in futuro.
__________________
http://sic-oding.blogspot.com/ |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:27.