Estoy trabajando en un programa Haskell para jugar juegos espaciales: tengo un gráfico de un grupo de "individuos" que juegan el dilema del prisionero, pero solo con sus vecinos inmediatos, y copiando las estrategias de las personas que mejor lo hacen.Imagen de la biblioteca de dibujo para Haskell?
He llegado al punto en el que necesito dibujar una imagen del mundo, y aquí es donde he tenido problemas. Dos de las posibles geometrías son fáciles: si las personas tienen cuatro u ocho vecinos cada una, entonces represento cada una como un cuadrado relleno (con el color correspondiente a la estrategia) y coloco el plano con estas. Sin embargo, también tengo una situación en la que las personas tienen seis vecinos (hexágonos) o tres vecinos (triángulos).
Mi pregunta, entonces, es: ¿Qué es una buena biblioteca de Haskell para crear imágenes y dibujar formas sobre ellas? Prefiero que cree PNG, pero no soy increíblemente quisquilloso. Originalmente estaba usando Graphics.GD, pero solo exporta enlaces a funciones para dibujar puntos, líneas, arcos, elipses y rectángulos no rotados, lo que no es suficiente para mis propósitos (a menos que quiera dibujar hexágonos píxel por píxel *). Estudié usando foreign import
, pero está resultando un poco complicado (en parte porque la función de dibujo de polígonos requiere una matriz de estructuras gdPoint
), y dado que mis requisitos pueden crecer, sería bueno usar una solución de Haskell y No tengo que ensuciarme con el FFI (aunque si se llega a un acuerdo, estoy dispuesto a hacerlo). ¿Alguna sugerencia?
* Que es también es una opción; cualquier consejo sobre cómo hacerlo también sería apreciado, aunque creo que una biblioteca sería más fácil.
EDIT: Muchas gracias a todos por sus sugerencias. Desafortunadamente, no pude obtener todas las bibliotecas necesarias de gtk2hs para construir, lo que descartó una gran cantidad de soluciones. Por diversas razones, después de probar todas sus respuestas, no pude instalar varias bibliotecas y descubrí que otras no podían hacer lo que quería, terminé decidiendo simplemente exportar más de una FFI para libgd y usarla en su lugar.
posible duplicado de [biblioteca de Haskell para el dibujo 2D] (http://stackoverflow.com/questions/5612201/haskell-library-for-2d-drawing) –