3

私はQuickGraphが初めてです。ドキュメント ページの例に従って、グラフに頂点とエッジを追加しました。ここで、グラフを Windows フォームに表示したいと考えています。私はその目的のために Graphviz を使用しています。これは出力として .DOT ファイルを生成します。レンダリングについては、以下のコード サンプルに従っています。

IVertexAndEdgeListGraph<TVertex,TEdge> g= ...;
var graphviz = new GraphvizAlgorithm<TVertex,TEdge>(g);
string output = graphviz.Generate(new FileDotEngine(), "graph");

しかし、私のコンパイラは を検出しませんFileDotEngine()。さらに、.DOT ファイルが生成された後に何をすべきかわかりません。

4

2 に答える 2

2

FileDotEngine自分自身を提供する必要があります。たとえば、Github のこの例を参照してください。FileDotEnginejpg を生成する単純なものは次のようになります。

public sealed class FileDotEngine : IDotEngine
{
    public string Run(GraphvizImageType imageType, string dot, string outputFileName)
    {
        string output = outputFileName;
        File.WriteAllText(output, dot);

        // assumes dot.exe is on the path:
        var args = string.Format(@"{0} -Tjpg -O", output);
        System.Diagnostics.Process.Start("dot.exe", args);
        return output;
    }
}

次に、生成された画像を画像ボックスなどに表示できます。

于 2013-10-11T07:33:21.687 に答える
0

もう 1 つの方法は、winforms アプリで WPF コントロールをホストし、Graph#を使用してグラフを表示することです。ただし、私はこれを自分で試したことはありません。

于 2013-10-11T10:07:59.883 に答える