Pregunta

Estoy buscando una biblioteca de diseño gráfico simple para C ++. Quiero incrustar la biblioteca en nuestro visualizador basado en wxWidgets. En resumen, estoy buscando algo como graphviz , excepto dinámico, que es cuando ocurre un evento, solo se necesita cargar el cambio en el gráfico, no la pantalla completa. Hay dynagraph , pero parece un proyecto muerto. Anteriormente me sugirieron usar VTK, pero es un peso pesado.

Estoy buscando una biblioteca de código abierto, sin copyleft disponible para uso comercial (GPL está fuera, LGPL debería estar bien). Estoy abierto a sugerencias que google no dará.

¿Fue útil?

Solución

El diseño que Graphviz genera se basa en la estructura global: cualquier adición puede cambiar drásticamente la salida (a menos que esté utilizando coordenadas fijas, en cuyo caso probablemente no haría esta pregunta). Básicamente, si desea la colocación automática de elementos, debe aceptar una de estas soluciones:

  • Cuando se coloca un nuevo elemento, se ejecuta una simulación física en tiempo real, lo que hace que los nodos reboten violentamente hasta que se instalen en sus nuevas ubicaciones. Esto será lento, pero mostrará "agradable". cambios.
  • Cuando se coloca un nuevo elemento, se vuelve a dibujar todo el gráfico (física / lo que está oculto, pero todo se modifica). Esto será más rápido debido a que no es necesario volver a dibujar, pero las ubicaciones relativas de los nodos pueden ser completamente diferentes.
  • Cuando se coloca un nuevo elemento, los elementos existentes no se modifican. Después de suficientes actualizaciones dinámicas, su gráfico se verá como basura, porque la ubicación automática es un problema de optimización global.

Lo siento, no puedo ayudarte con tu pregunta, pero tal vez esto ayude a explicar por qué lo que estás buscando puede simplemente no existir (o ser bueno).

Otros consejos

Para superar algunos de los problemas al usar graphviz (descrito por Tom). Configuramos los códigos mundiales del visualizador para que coincidan con los códigos mundiales de graphviz.

entonces. suponiendo que cada elemento visual tenga un identificador único, construya un gráfico usando estos elementos. muestra el gráfico como texto. Realinear todo en función del análisis de salida. ?

-

Michael

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top