2013-04-09 15 views
5

私は、ライブラリとしてGraphvizのいくつかのバージョンがあることを知っています。しかし、私はちょっと混乱しています。私は生成し、LinuxのGUIアプリケーションからいくつかのグラフを表示したいと思います。グラフを生成する必要のあるC++プロジェクトに推奨されるgraphvizライブラリAPIはどれですか?

http://www.graphviz.org/doc/libgraph/Agraph.pdf(22ページ)によると、LibgraphはCgraphに置き換えられました。しかし、この文書はAgraphと呼ばれ、私は奇妙な発見をしています。

23ページで、LgraphはCgraphの後継であり、C++を使用しているので、もっと知りたいと思っていますが、どこでもLgraphを見つけることはできません。

多分関連して、私はgraphvizファイルのインポートとエクスポートをサポートするBGLと呼ばれるBoostライブラリがあることを知っています。 Graphvizに直接またはLgraphを使用することが望ましいかどうかについての意見を探してください。

私はsudo apt-get install libgraphviz-dev私はCグラフを取得する場合はUbuntuのように見えます。この場合は、Cgraphが推奨ライブラリであることを確認し、LgraphまたはBGLのいずれかを検討する価値があるかどうかを確認することです。

+0

cgraph(http://www.graphviz.org/doc/libguide/libguide.pdf)のC APIはあまりにも悪くはありませんが、C言語で書かれている以外は、古典的なオブジェクト指向です。 –

+0

漠然とした質問です。 "いくつかのグラフを生成する" - これはどういう意味ですか? Graphvizは、明確に表示できるようにグラフをレイアウトします。 BGLは、最短経路と同じような質問に答えるためにグラフを処理するためのフレームワークです。しかし、グラフを生成したいのですが...何から? – ravenspoint

+0

@ravenspoint:たとえば、.gvファイルとして出力できる内部データがあります。私は手作業で多数の.gvファイルを作成してから、system()呼び出しを実行してdotをaskに変換してグラフに変換することができます。しかし、代わりにGraphviz APIを使ってGraphvizを外部から呼び出さなくてもいいと思っていました。 –

答えて

2

BGLはGraphvizに対話型インターフェイスを提供しません。必要な場合は、cgraphなどのGraphvizのネイティブライブラリの1つを使用する必要があります。 BGLはGraphviz形式のファイルを読み込んだり出力したりすることができますが、探しているようには見えません。独自のレイアウトアルゴリズムもいくつか用意されていますが、Graphvizのものほど洗練されていません。

+0

「Graphvizのものほど洗練されていない」という句は、Boost 1.59(http://www.boost.org/doc/libs/1_59_0/libs/graph/doc/topology.html)でまだ保持されていますか? – AlwaysLearning

関連する問題