グラフからマップを作成する方法


7

別のソースから提供されたデータに基づいて2Dポリゴンマップを描画して、マップでのアクションの分析を容易にしたいと考えています。データの形式は次のとおりです。

1 ['2', '4', '5', '7', '17', '10']
2 ['1', '3', '4']
3 ['2', '11', '4']
4 ['1', '2', '3', '11', '13', '18', '5']
5 ['1', '4', '18', '17']
6 ['7', '8']
...

最初の番号はノードのIDです。次のリストには、その隣接ノードのIDが含まれています。ノードの隣接ノードの数が異なるため、ポリゴンマップを描画する必要があります。

そこで、マップ表現にボロノイポリゴンを使用しようとしました。問題は、すべての近傍関係を満たすポイントをどのように決定できるでしょうか。私の最初の試みは、多かれ少なかれ私の試行錯誤のサイクルにおけるエラーだと思います。graphvizsfdpツールを使用して、グラフのポイント位置を取得しました。

sfdpを使用したサンプルのグラフ表現

ポイントの位置を使用すると、次のマップ表現になります。

ボロノイ図を使用したサンプルマップ

このアプローチの問題は、たとえばノード4と1が隣接しているが、ボロノイ図ではノードの位置が原因​​で隣接していないことです。私にとって、このアプローチは失敗しました。

グーグルで、ポリゴンまたはタイルを使用してマップを生成する多くのチュートリアルを見つけましたが、与えられたデータのマップを作成する方法はまだわかりません。(複数の)六角形/三角形/正方形または混合を使用して必要なものを達成するアプローチがあると思いますが、何を検索するかわかりません。

ここで私を助けることができるキーワードまたはアルゴリズムはありますか?

更新/結果:完全を期すために:これは、受け入れられた回答の提案を使用した後の私の結果です。 結果


与えられたデータから、特にポイント12と9で1つの関係しかない複数のマップを作成できます。これは特別な問題ですか?
lewisjb 2015年

@パイロ:いいえ、これは問題ではありません。その分析に使用されます。
マギー

Delaunay三角形分割とVoronoiダイアグラムとしてリストされているこの二重問題のアルゴリズムを見つけるでしょう。
tinyfiledialogs

回答:


12

必要なのは、二重グラフを作成することです。つまり、頂点に変換し、元のグラフの隣接面に基づいてそれらを接続することによって作成されたグラフ。例:

二重グラフ

ご覧のように、問題は、グラフのレイアウトを同じにしたい場合、二重グラフで非常に曲線状のエッジが表示されることです。また、あなたが頻繁になってしまいます多重グラフ -いくつかの頂点が、それらの間の複数のエッジを持つグラフを。平面であることが保証されているので、それは何かです。

あなたの例を使用するために、以下のステップで二重グラフを作成できます:

ステップ1:元のグラフの各面について、頂点を作成します

図心と外輪

外側の「リング」を作成して、最も外側の「頂点」を表すことに注意してください。これにより、端に奇妙な曲線のエッジがなく、見栄えの良いグラフを作成できます。

手順2:元のグラフの各エッジについて、2つの面頂点をエッジに接続します

また、これらのエッジが互いに重なり合わないようにする必要があります。3と12の間のギャップは特に問題です。これらの新しいエッジは、これを可能にするために曲げる必要がある場合があります。それはあなたが凹面グラフを持つことで得られるものです。

エッジ

ステップ3:リスクを負う

色付きグラフ


ヒントをありがとう。私はボロノイのことの前に同様のアプローチを始めましたが、それを最後まで持っていませんでした。私はこれを行い、その結果を投稿します。
マギー

これは興味深いです。また、それが役立つ場合は、ボロノイとドロネーの双対性に関する情報を探してみてください。これは、少なくともそれを理解するための良いスタートです:scicomp.stackexchange.com/questions/771/...
グスタボ・マシエル

1
もう1つの質問:sfdpの助けがなければ、どのアプローチを使用しますか?必要なノード位置を取得するために適切なグラフ表現を作成する一般的なアプローチはありますか?
マギー

@maggieは、平面グラフレイアウトを実行するものを必要とします。それはささいな問題ではなく、特定のパッケージをお勧めすることはできませんが、ここここにオプションあります
congusbongus

1

各点が特定の色の小さな正方形である最初の画像が検索対象である場合、ドローネの三角形分割を作成する必要があります。


1
これは、もう少しコンテンツを使用して、答えをもう少し簡潔にすることができます。
トム「ブルー」ピドック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.