realista para niños metodo lineas librerias graficos graficas form facil ejemplos dibujar como caballo c# .net wpf graph

niños - librerias para dibujar en c#



¿Cómo dibujar fácilmente gráficos en WPF? (6)

Necesito dibujar gráficos que representen máquinas de estados finitos. Intenté usar el Graph# . Es genial, pero le faltan algunas cosas. No hay documentación, lo que hace que sea muy difícil de usar, no puedo dibujar bucles (bordes de un vértice a sí mismo) utilizando su control WPF personalizado y el etiquetado de bordes tampoco está implementado. ¿Hay alguna otra biblioteca o forma aconsejada de dibujar gráficos en WPF?

Funcionalidad que necesito:

  • etiquetado de bordes
  • aristas de bucle (cíclicas)
  • etiquetado de vértice
  • dibujar círculos simples / dobles alrededor de los vértices: los vértices deben representarse como un círculo (o un doble círculo) con una etiqueta dentro

¿Algunas ideas?

EDITAR: Tengo algunas proposiciones, por lo que estoy agradecido. Sin embargo, creo que no he dejado claro mi pensamiento. Necesito este tipo de gráfico: http://static.max99x.com/school/automata-editor1.png . Todas las herramientas sugeridas hasta ahora no son adecuadas para esto o quizás no sé cómo aplicarlas en esta situación.


Opción 1: diseño gráfico automático de Microsoft

Gratis

http://research.microsoft.com/en-us/projects/msagl/

GitHub

https://github.com/Microsoft/automatic-graph-layout.git

Winforms >> WPF

Es WinForms, pero se puede importar a WPF con unas pocas líneas de código.

Visualización de nodos y bordes con el diseño de gráfico automático de Microsoft

http://www.codeguru.com/csharp/.net/net_wpf/article.php/c16963/Visualizing-Nodes-and-Edges-with-Microsoft-Automatic-Graph-Layout.htm

Ejemplos

http://research.microsoft.com/en-us/projects/msagl/#Layouts

Preguntas más frecuentes

http://research.microsoft.com/en-us/projects/msagl/faq.aspx

Opción 2: QuickGraph - Una biblioteca de gráficos 100% C # con soporte Graphviz

Gratis

http://quickgraph.codeplex.com/

Esta biblioteca es 100% C #. No se deje engañar por la línea "Soporte de Graphviz", esto significa que utiliza el código C # para importar el resultado de Graphviz. No hay código C ++ a la vista.

http://www.codeproject.com/Articles/5603/QuickGraph-A-C-graph-library-with-Graphviz-Sup

Tiene un paquete de NuGet.

En desarrollo desde 2003 hasta 2011 (8 años !!).

Opción 3: GraphSharp

Gratis

Graph#

  • Depende de QuickGraph (que es 100% C #).
  • Soporta async / await (¡bien!).

Manifestación

https://sachabarbs.wordpress.com/2010/08/31/pretty-cool-graphs-in-wpf/

Notas

Este funcionó muy bien, estuvo funcionando en un par de horas. También admite DataTemplates , por lo que cada nodo puede tener el aspecto que desee.

Opción 4: Graphviz4net

Gratis

http://graphviz4net.codeplex.com/

Opción 5: GoDiagram

$$$

http://www.nwoods.com/products/godiagram/index.html

Opción 6: Un control de dibujo de árbol de gráfico para WPF

Gratis

http://www.codeproject.com/Articles/29518/A-Graph-Tree-Drawing-Control-for-WPF

Inadecuado. Es un diseño de árbol.

Opción 7: usar WPF para visualizar un gráfico con dependencias circulares

Gratis

http://www.codeproject.com/Articles/43776/Using-WPF-to-Visualize-a-Graph-with-Circular-Depen

Opción 8: GraphViz

Gratis

http://www.graphviz.org/Download..php

Esto no es C #, y utiliza código no administrado. Sin embargo, hay envoltorios de C # para ello.

Otorgado por AT&T, consulte "Investigadores de AT&T: Inventar la ciencia detrás del servicio" y "Página principal de investigación> cartera> herramientas de software": http://www.research.att.com/software_tools?fbid=NEk8_gxLLEc

Fuente

http://www.graphviz.org/Download_source.php

También abren Rserve de origen!

Opción 9: Shields.GraphViz

Gratis

Envoltura para GraphViz.

https://github.com/timothy-shields/graphviz

Opción 10: NetworkView: un control personalizado de WPF para visualizar y editar redes, gráficos y diagramas de flujo

Gratis

http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a

Esta biblioteca permite al usuario crear conexiones entre nodos, lo que probablemente sea un poco excesivo.

Ejemplo

https://channel9.msdn.com/coding4fun/blog/Noodling-Network-Nodes-Diagraming-with-the-NetworkView-custom-WPF-control

Es todo MVVM.

Opción 11: Gephi - La plataforma Open Graph Viz

Gratis

Ver http://gephi.github.io/

No es una biblioteca de gráficos WPF, pero proporciona excelentes ejemplos de cómo pueden verse los gráficos realmente agradables. El tutorial es excelente.

Opción 12: Telerik

$$$

http://www.telerik.com/products/wpf/diagrams.aspx

Opción 13: Infragística

$$$

http://www.infragistics.com/samples/wpf/network-node/overview http://www.infragistics.com/samples/wpf/network-node/relationship-between-nodes http://www.infragistics.com/samples/wpf/network-node/custom-node-style

Opción 14: Diseñador de diagramas WPF

Gratis

No es tanto una herramienta gráfica, pero le muestra cómo mover, redimensionar y rotar objetos de cualquier tipo en un lienzo.

http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1

Opción 15: MVVM Diagram Designer

Gratis

Y, alguien volvió a implementar esto en MVVM: no es una herramienta de gráficos, pero le muestra cómo mover, redimensionar y rotar objetos de cualquier tipo en un lienzo.

http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer

Opción 16: yWorks - The Diagramming company

$$$

https://www.yworks.com/en/products_yfiles_practicalinfo_gallery.html https://www.yworks.com/en/products_yfileswpf_about.html

Opción 17: MindFusion

$$$

http://www.mindfusion.eu/features-wpfdiagram.html http://www.mindfusion.eu/

Opción 18: Dot2WPF

Gratis

Un control WPF para ver gráficos DOT.

http://www.codeproject.com/Articles/18870/Dot-WPF-a-WPF-control-for-viewing-Dot-graphs

Opción 19: SyncFusion

$$$

https://www.syncfusion.com/products/wpf/diagram

Opción 20: AddFlow

$$$

https://www.componentsource.com/product/addflow-wpf-standard

Opción 21: Lassalle

$$$

http://www.lassalle.com/

Opción 22: Visualización dinámica de datos

dynamicdatadisplay.codeplex.com

Opción 23: Nevron

$$$

https://www.nevron.com/

Solo para WinForms, pero se puede importar a WPF. Sin embargo, cada elemento individual no puede tener una plantilla, lo que es una gran ventaja de las soluciones WPF.

Términos de búsqueda de Google

  • "workflow wpf graphing"
  • "biblioteca de gráficos wpf"
  • "biblioteca de máquina de estado wpf"

Aquí hay algunas opciones:

Espero que encuentres lo que necesitas. Los que cuestan dinero también tienen un sendero gratis disponible. ¡Puedes obtener algunos resultados bastante buenos con telerik o visifire!


Creo que puede implementar fácilmente todos sus requisitos con la biblioteca GraphX ​​para WPF. Se basa en Graph # y tiene documentos detallados. http://panthernet.ru/en/projects-en/graphx-en

Admite el etiquetado de bordes y los bordes de bucle automático junto con las plantillas de borde y vértice. Si tiene alguna pregunta, puede hacerla en la sección de Discusiones del sitio.


En una pregunta similar sobre gráficos bipartitos que puede leer aquí , recibí la recomendación sobre http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a

Tiene bucles, etiquetado de vértices, una visualización personalizada de vértices que puede editar fácilmente para formar círculos. Sin embargo, creo que no tiene etiquetado de bordes. Sólo dale una oportunidad.

Al menos es un muy buen comienzo si decides hacerlo por tu cuenta.

Probablemente desee consultar http://www.codeproject.com/Articles/43776/Using-WPF-to-Visualize-a-Graph-with-Circular-Depen


Si esto se encuentra en un escenario comercial, también debería echar un vistazo a los yFiles de yWorks .

Tiene todas las características que está buscando y su característica más destacada es la capacidad de organizar automáticamente sus diagramas. Si tiene una máquina de estado más grande o incluso crea la máquina de estado en código, esto le ayudará a organizar claramente incluso diagramas grandes automáticamente. También para las etiquetas hay algoritmos automáticos de colocación de etiquetas, que encuentran ubicaciones para las etiquetas de modo que no se superpongan entre sí o con otros elementos no relacionados.

Puede ver la biblioteca en vivo en acción en este video de Youtube , pero también puede jugar de inmediato con las demostraciones en vivo de Silverlight en línea o simplemente evaluar la biblioteca y jugar con las fuentes de muestra.

Descargo de responsabilidad: trabajo para yWorks, pero en SO no represento a mi empleador.