c#使用QuickGraph和GraphViz绘制图形

本文关键字:绘制 图形 GraphViz 使用 QuickGraph | 更新日期: 2023-09-27 18:10:11

我希望我不会显得懒惰,但我真的很努力使用QuickGraph和GraphViz绘制图形,因为我似乎无法在网上找到很多文档。我对c#接口很陌生,所以我发现它们也很令人困惑。有没有人能给我一个简单的工作例子,或者指导我一些好的例子和文档?

谢谢。

c#使用QuickGraph和GraphViz绘制图形

Quickgraph-to-Graphviz-export不能写入文件,所以你需要实现idotenengine来处理文件写入。

public class FileDotEngine : IDotEngine
{    
    public string Run(GraphvizImageType imageType, string dot, string outputFileName)
    {
        using (StreamWriter writer = new StreamWriter(outputFileName))
        {
            writer.Write(dot);    
        }
        return System.IO.Path.GetFileName(outputFileName);
    }
}

然后你可以像这样调用Graphviz算法:

GraphvizAlgorithm<TNode, TEdge> graphviz = new GraphvizAlgorithm<TNode, TEdge>(this.Graph);
graphviz.FormatVertex += (sender, args) => args.VertexFormatter.Comment = args.Vertex.Label;
graphviz.FormatEdge += (sender, args) => { args.EdgeFormatter.Label.Value = args.Edge.Label; };
graphviz.Generate(new FileDotEngine(), filePath);

创建的dotfile可以传递给graphviz。请参阅dotguide

中的Graphviz Dot用法。