問題は10個のノードがあり、それらの間にいくつかの接続があることです。ここでは、ノードとノードの間の円として円を描いたビジュアルグラフを描きたいと思います。私の問題は、画面上にノードを配置するためのアルゴリズムは何ですか、我々は1つの円を描画し、次に他の円はできるだけ重ならないように描画する必要があります。説明してください。Visual Basicでのノードグラフの描画
1
A
答えて
2
graph drawingには多くの目標があり、相互に互換性がないため、この問題にはかなりの方法があります。回避するものが挙げられる
- 総表面積が占有
- 横断エッジと全体形状(コンパクトさ、アスペクト比)エッジ間
- 過度に長い縁
- 小さな角度(重複エッジ) の数
ここにはいくつかのアプローチがあります。
ノードを円に配置して均等に配置するのが簡単です。次に、エッジを直線として追加します。これはほとんど「うまくいく」でしょう。
さらに一般的には、お互いに反発するmodel your nodes as springsです。これは例えばKamada-Kawaiアルゴリズムの背後にある考え方です。エッジの長さを最小限に抑えながらノードを離して保持します。
第3のアプローチは、ノードが選択されたルートノードからの距離を示す同心リング上に配置されるradial layoutです。
私はあなたが可能だかのアイデアを得るためにGraphvizパッケージをチェックアウトをお勧めします。使い方が簡単で楽しいです。多くの言語で利用可能なGraphvizライブラリへのバインディングがありますが、残念ながらVisual Basicはそれらの1つではありません。
編集:This questionが関連しています。
関連する問題
- 1. Visual Basicでの画面の大きさ
- 2. Visual Studio 6でVisual Basic 6とVisual Basic
- 3. Visual Basicの私はVisual Basicの上だ
- 4. Visual Basicのガベージコレクション
- 5. Visual Basicのリスト?
- 6. Visual Basicのラベル
- 7. Visual Basicのログインフォームクエリ
- 8. のVisual Basic、コードクリーナー
- 9. Visual Basicのハードディスクアクセラレーションセンサー
- 10. Visual Basic RBG画面からキャプチャ
- 11. [VISUAL BASIC] vb.netでのListViewに
- 12. Spliting CSV Visual Basicの
- 13. グラブ行 - Visual Basicの
- 14. Visual BasicのLINQエラー
- 15. Visual Basicコードのクリーニング
- 16. Visual Basicのバブルソートテキストボックス2015
- 17. Visual BasicカウンタループExcelで
- 18. VB.NET Visual Basicヘッダーリーダー
- 19. Visual Basic 2008 'tests'
- 20. Visual Basic 2010データセット
- 21. Visual Basicプログラミング
- 22. Visual Basic、Array、Mod
- 23. Visual Basic 6.0ケースステートメント
- 24. Visual Basicマクロエラー
- 25. Visual Basic LINQ
- 26. Visual Basicファイル
- 27. Visual Basic ComboBox.SelectedIndex
- 28. Visual Basic IFステートメント
- 29. Visual Basic 2010エラー
- 30. Visual Basic .NET:スケジュール
私はgraphvizがすべての選択肢の中で最も痛みのないものになると思います。グラフ描画は単純な問題ではありません。 – Daishiman
Graphvizへのバインディングを含む、VB.NETで使用するさまざまなグラフ描画ライブラリがあります。 – reinierpost
@reinerpost:これは素晴らしいことです - あなたはリンクを提供できますか?私は良いものを見つけることができませんでした... –