Haskell graficos
Alfredo Paz Valderrama 19 de agosto de 2011
1.
Graphics.Gloss
Gloss es una biblioteca que permite hacer gr´ficos en Haskell de una manera muy sencilla. Esta biblioteca est´ basaa a da en otras dos bibliotecas que son algo m´s complejas: OpenGL y GLUT. a Gloss es descendiente de ANUPlot, una biblioteca para hacer gr´ficosdesarrollada por la Universidad Nacional a de Australia. Gloss permite que los programadores novatos podamos construir programas con gr´ficos sin mucha a complejidad. El uso Gloss servier´ como ejemplo pr´ctico y tangible de la utilidad de los tipos de datos abstractos en Haskell. a a
2.
Instalaci´n o
La instalaci´n puede ser hecha con cabal y en linux o windows escribiendo el siguiente comando: ocabal install gloss Sin embargo, esto requiere que se tenga cabal debidamente instalado. Para evitar inconvenientes, sugiero que no se instale la biblioteca y simplemente se desargue de la siguiente direcci´n: o http://hackage.haskell.org/packages/archive/gloss/1.3.4.1/gloss-1.3.4.1.tar.gz Luego s´lo habr´ que descomprimir la biblioteca y escribir nuestros programas, dentro del directorio donde seo ıa descomprimi´ la biblioteca. Por ejemplo, si descomprimimos el archivo anterior, s´lo habr´ que ingresar al directorio o o a gloss-1.3.4.1 y escribir all´ nuestros programas. Notar que el directorio Graphics debe estar en el mismo nivel que ı nuestros archivos. Para comprobar que todo funciona bien escriba el siguiente programa (dentro del directorio donde descomprimi´ la o biblioteca).Listing 1: first.hs import G ra ph ic s . G l o s s main : : IO ( ) main = displayInWindow ”Mi Ventana ” ( 2 0 0 , 2 0 0 ) ( 1 0 , 1 0 ) w h i t e ( C i r c l e 8 0 ) Si llamamos a la funci´n main se mostrar´ la siguiente figura: o a
1
3.
displayInWindow
displayInWindow : : String−>(Int , Int)−>(Int , Int)−>Color−>P i c t u r e −>IO ( ) Esta funci´n muestra figuras y recibe los siguientespar´metros: o a String El nombre de la ventana. (Int, Int) El tama˜o de la ventana en p´ n ıxeles. (Int, Int) Posici´n inicial de la ventana en p´ o ıxeles. Color El color del fondo de la pantalla. Picture La figura a dibujar. La pantalla del computadoras forma im´genes a partir de peque˜os puntos, conocidos como p´ a n ıxeles, de este modo la pantalla es una collecci´n de peque˜os puntos como si setratase de una matriz. o n Las figuras se dibujar´n dentro de los l´ a ımites de la ventana (tama˜o) usando un sistema de coordenas cartesianas n con el origen (0, 0) en el centro de la ventana.
3.1.
Color
data C o l o r deriving (Eq, Show) black , w h i t e : : C o l o r red , blue , g r e e n : : C o l o r y e l l o w , magenta , cyan : : C o l o r r o s e , orange , c h a r t r e u s e ,aquamarine , azure , v i o l e t : : C o l o r El tipo Color permite poner color a nuestros gr´ficos. a
3.2.
Picture
type Po i nt = ( Float , Float ) type Path [ Po in t ] data P i c t u r e = Blank | Polygon Path | Li ne Path | C i r c l e Float | T h i c k C i r c l e Float Float | Text String | Bitmap Int Int B y t e S t r i n g | Color Color Picture | T r a n s l a t e Float Float P ic t u r e | Rotate Float P i c t u r e | S c a l e Float Float P i c t u r e | Pictures [ Picture ] d e r v i n g (Eq, Show, Monoid ) Un Picture es la forma que tiene la biblioteca de representar una figura 2D. Una figura puede ser: Blank Crea una figura vac´ la figura nula. ıa, Polygon Path Crea una figura como un poligono de color s´lido, que sigue la ruta (path) se˜alada por los puntos de o n lalista. Line Path Crea una figura como una linea que uno los puntos se˜alados por la ruta (path). n Circle Float Crea una figura como un c´ ırculo del radio indicado. ThickCircle Float Float Crea una figura como un c´ ırculo del radio indicando dibujado con una l´ ınea de un grosor dado. Text String Crea una figura como un texto a dibujar. Bitmap Int Int ByteString Crea una figura a partir de una...
Regístrate para leer el documento completo.