ヴォロノイさんのネットワークについて
2020年4月某日※前回の画像から。コンテナからターミナルをホストの画面に表示する様子 こんにちは。RockinWoolです。東京のコロナは収まってきましたが、自分の身近では感染が広がっている気がするので気を引き締めてGEEKをしていたいですね! さて、今回は結構マイナーな話になってしまうと思いますので、全然興味ないと思ったらすぐに退避してください。今回作成するプログラムは、簡単にいうと2つのネットワークを作成するものです。一つ目はVoronoi図と呼ばれるものです。これはxy平面上にランダムにn個の点をばらまいて、2点間の距離が等しくなるところに境界線を引いていく・・というものになります。これを簡単に実装するにはpythonのscipyライブラリ内にあるscipy.spatialを活用すればそれほど難しくありません。二つ目はこのVoronoi図からもう一度Voronoi図を作成すした図です。まったく意味がわからないと思うのですが、これにより領域同士がどのように隣接しているのかを表現できるのではないか・・・?と期待してのものです。それでは早速やっていきます。まず、単純なVoronoi図を表示する部分はこのようにしました。 多分こんな感じで大丈夫だと思います。これを実際に走らせるとこんな感じの図形が出てきます。 ちなみに最後のshow_pointsをなくせば、voronoi図の境界の交点に点がプロットされます。次に作成する図はこの点がどの領域と隣接しているのかを利用して作成します。ちなみに今回使用していませんがVoronoiライブラリにはほかにもいくつか便利なものがあるので、ここにメモって置きます 次にVoronoi図の領域間の隣接関係をネットワークに直します。以下のようにコードを書くとこのような図が出力されます。 ここで使用したfigure_out関数は本当に適当にmatplotlibで書けば良いと思います。 こんな感じで図が出力されました。 ということで今回の実験は終了です。ここまで見てくださってありがとうございました。