C ++用のシンプルな動的グラフ表示
-
19-08-2019 - |
質問
C ++用のシンプルなグラフレイアウトライブラリを探しています。ライブラリをwxWidgetsに基づいたビジュアライザーに埋め込みたいです。要約すると、動的を除く graphviz のようなものを探しています-イベントが発生したとき、完全な表示ではなく、グラフの変更のみをロードする必要があります。 dynagraph がありますが、プロジェクトは死んでいるようです。私は以前にVTKを使用することを提案されました-しかしそれはヘビー級です。
商用利用可能なオープンソースのコピーレフトではない種類のライブラリを探しています(GPLは出ていますが、LGPLは大丈夫です)。私はグーグルが与えない提案を受け入れています。
解決
Graphvizが生成するレイアウトは、グローバル構造に基づいています-単一の追加は、出力を劇的に変更する可能性があります(固定座標を使用している場合を除き、この場合はおそらくこの質問をしないでしょう)。基本的に、要素の自動配置が必要な場合は、次のいずれかの解決策を受け入れる必要があります。
- 新しい要素が配置されると、物理シミュレーションがリアルタイムで実行され、ノードが新しい場所に落ち着くまで激しく跳ね返ります。これは遅くなりますが、<!> quot; pleeasing <!> quot;と表示されます。変更。
- 新しい要素が配置されると、グラフ全体が再描画されます(物理/非表示になっているものは何でも、全体が変更されます)。再描画する必要がないため、これは高速になりますが、ノードの相対位置は完全に異なる場合があります。
- 新しい要素が配置されると、既存の要素は変更されません。自動配置はグローバルな最適化の問題であるため、十分な動的更新を行うと、グラフはがらくたのように見えます。
ご質問にはお答えできませんが、これは、探しているものが単に存在しない(または良い)理由を説明するのに役立つかもしれません。
他のヒント
graphviz(Tomが説明)を使用する際の問題のいくつかを克服するため。 graphvizワールド座標と一致するようにビジュアライザーのワールド座標を設定します。
その後。各視覚要素に一意の識別子があると仮定して、これらの要素を使用してグラフを作成します。グラフをテキストとして出力します。出力解析に基づいてすべてを再調整します。
-
マイケル
所属していません StackOverflow