Graphviz es un programa generador de grafos. Es open source y es independiente del lenguaje de programación que le llame, pero acá veremos cómo utilizarlo para generar grafos desde un programa en C++
Antes que nada, debemos instalar Graphviz, ya sea por consola:
sudo apt-get install graphviz
Una vez instalado, lo siguiente que debemos hacer es crear un fichero con extensión .dot, que será donde le mandaremos los parámetros a Graphviz para que genere el grafo. Allí podemos especificar el número de nodos, aristas y demás.
El formato del fichero debe ser algo similar a esto:
digraph G {
/* El padre tiene un hijo y
una hija: */
padre -> hijo;
padre -> hija;
}
Luego de tener el archivo listo, debemos llamar a la herramienta dot, que se encargará de compilar el archivo y transformar el fichero en una imagen.
En C++ podemos hacerlo con el comando system:
En C++ podemos hacerlo con el comando system:
system("dot -Tpng nombre_de_fichero.dot -o nombre_de_imagen_generada.png");
y para abrir la imagen generada:
system("nohup display ruta_y_nombre_de_imagen_generada.png &" );
La imagen que generada por Graphviz será parecida a esta:
Graphviz puede generar grafos en varios diseños y formatos, como SVG para páginas web, PDF o Postscript, también soporta GXL y XML
Les dejo un manual de uso de Graphviz para descargar aqui
Les dejo un manual de uso de Graphviz para descargar aqui
disculpa sabes como se podria generar un grafo en svg implementando la funcion de C:
ResponderEliminarchar*grafica_genera_svg(structgrafica*a,func_a_cadena f);
un poco tarde la respuesta, pero puedes intentar con el parametro -Tsvg
EliminarPuedes leer la documentación en: www.graphviz.org/doc/info/output.html#ID
En la llamada system("dot ....") me sale error , no reconoce el comando dot. Pero lo hago por consola y si me reconoce, cuál es el problema ?
ResponderEliminarYa lo resolví, tenia que reiniciar CodeBlocks XD
Eliminarcomo hiciste eso podrias ayudarme porfavor
EliminarTienes que explicar con realizarlo en c++ la sintaxis de graphvi
ResponderEliminar