質問

C ++用のシンプルなグラフレイアウトライブラリを探しています。ライブラリをwxWidgetsに基づいたビジュアライザーに埋め込みたいです。要約すると、動的を除く graphviz のようなものを探しています-イベントが発生したとき、完全な表示ではなく、グラフの変更のみをロードする必要があります。 dynagraph がありますが、プロジェクトは死んでいるようです。私は以前にVTKを使用することを提案されました-しかしそれはヘビー級です。

商用利用可能なオープンソースのコピーレフトではない種類のライブラリを探しています(GPLは出ていますが、LGPLは大丈夫です)。私はグーグルが与えない提案を受け入れています。

役に立ちましたか?

解決

Graphvizが生成するレイアウトは、グローバル構造に基づいています-単一の追加は、出力を劇的に変更する可能性があります(固定座標を使用している場合を除き、この場合はおそらくこの質問をしないでしょう)。基本的に、要素の自動配置が必要な場合は、次のいずれかの解決策を受け入れる必要があります。

  • 新しい要素が配置されると、物理シミュレーションがリアルタイムで実行され、ノードが新しい場所に落ち着くまで激しく跳ね返ります。これは遅くなりますが、<!> quot; pleeasing <!> quot;と表示されます。変更。
  • 新しい要素が配置されると、グラフ全体が再描画されます(物理/非表示になっているものは何でも、全体が変更されます)。再描画する必要がないため、これは高速になりますが、ノードの相対位置は完全に異なる場合があります。
  • 新しい要素が配置されると、既存の要素は変更されません。自動配置はグローバルな最適化の問題であるため、十分な動的更新を行うと、グラフはがらくたのように見えます。

ご質問にはお答えできませんが、これは、探しているものが単に存在しない(または良い)理由を説明するのに役立つかもしれません。

他のヒント

graphviz(Tomが説明)を使用する際の問題のいくつかを克服するため。 graphvizワールド座標と一致するようにビジュアライザーのワールド座標を設定します。

その後。各視覚要素に一意の識別子があると仮定して、これらの要素を使用してグラフを作成します。グラフをテキストとして出力します。出力解析に基づいてすべてを再調整します。

-

マイケル

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top