Los gráficos (dirigidos) representan autómatas finitos. Hasta ahora, mi programa de prueba ha estado escribiendo archivos de puntos para probar. Esto es bastante bueno para las pruebas de regresión (mantenga los archivos de salida verificados en subversión, pregúntele si ha habido algún cambio) y para la visualización. Sin embargo, hay algunos problemas ...¿Hay una buena biblioteca de diseño gráfico que se pueda llamar desde C++?
Básicamente, quiero algo que puede llamarse desde C++ y qué planes un diseño para mis estados y transiciones, pero deja el dibujo para mí - algo que va a permitir que dibuje cosas como yo quiero y dibujar en ventanas GUI (wxWidgets).
También quiero una licencia que permita el uso comercial; no la necesito en este momento, y puedo lanzarla como código abierto, pero no quiero limitar mis opciones de cajero automático.
Los problemas con GraphViz son (1) las advertencias sobre la compilación desde el origen en Windows, (2) todas las dependencias innecesarias para la representación y el análisis, y (3) la (presunta) falta de una API documentada específicamente y puramente diseño.
Básicamente, quiero poder especificar mis estados (con tamaños de rectángulo delimitadores) y transiciones, y leer las posiciones para los estados y puntos de referencia para cada transición, luego dibujar basados en esas coordenadas por mí mismo. Realmente no he descubierto cómo se deben manejar las anotaciones sobre las transiciones, pero debería haber algún tipo de disposición para especificar los tamaños de caja delimitadora para aquellos, asociándolas con las transiciones y leyendo las posiciones.
¿Alguien sabe de una biblioteca que pueda manejar esos requisitos?
No estoy necesariamente en contra de implementar algo para mí, pero en este caso prefiero evitarlo si es posible.
+1 para una pregunta excelente y bien planteada. Lamentablemente, no tengo una respuesta. – aib
Boost tiene algoritmos de gráficos: http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/index.html Creo que la visualización está fuera de su alcance. –
Hay algoritmos de diseño dentro del módulo gráfico de impulso, pero desafortunadamente no son apropiados para gráficos dirigidos. Consulte la sección 22.12 aquí: http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/table_of_contents.html – Kim