2

我希望我不会显得懒惰,但我真的很难使用 QuickGraph 和 GraphViz 绘制图表,因为我似乎无法在网上找到太多文档。我对 C# 接口很陌生,所以我发现它们也很混乱。谁能给我一个简单的工作示例,或者指导我一些好的示例和文档?

谢谢你。

4

1 回答 1

2

Quickgraph-to-Graphviz-export 无法写入文件,因此您需要实现处理文件写入的 IDotEngine。

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 用法

于 2015-08-31T08:25:02.663 回答