
|

|

|
解説:佐藤健司/磯崎新アトリエ |

|

|
|
(1027KB)
|
|
4層のネットワークは任意の点(ノード)の分布からネットワークを生成するアルゴリズムを用いています.この任意の点の分布として,水路のネットワークではヴェネツィアにおける教会の分布をトレースしています.他の3種類については乱数を用いてランダムに点を生成しました.そのさい,初期条件としての点の総数を変えることにより,さまざまな密度のネットワークを作り出しています.たとえばヴェネツィアにおける教会の分布ではノードは72点あります.空中歩廊の例では数百点のオーダーです.その結果,ノード間の平均距離は水路の場合で約240m,空中歩廊では約70mです.つまり,この操作により「海市」にスケールが与えられます.
ノードの分布からネットワークを生成するアルゴリズムにおいてキーとなる概念は「距離」です.ネットワークをつくるということは,ある1つの点に関して,その点の結びつく相手を選択するということです.その連結する相手の数はいくつでもよいのですが,ここでは最大4点選択することにしています.この操作をすべての点にたいして実行すればネットワークの全体像が得られます.このさい連結する相手を選ぶクライテリアは「距離」です.ある1つの点に関して,その結びつく相手は距離の近い順に選択の候補になります.その相手にはまだ連結相手が4点見出されていないこと,連結する線分が既に連結された線分と交叉しないこと,この2点を満足すれば選択のリストに加えられます.同時に相手の点の選択相手のリストに自分自身が加えられます.この操作をすべての点に施すと,それぞれに結びつく相手を記したリストが作成されます.
|
|

|
|
|

|
このアルゴリズムは単純なソート・アルゴリズムの応用ですが,C++言語をもちいてAutoCAD上のダイナミック・リンク・ライブラリとして実装されます.関連するソース・コード(net.h2KBおよびnet.cpp11KB)とライブラリ(mytools.arx416KB)をウェブ・ページで公開しますので,条件を変えてシミュレーションすることが可能です.ライブラリのロードの仕方についてはAutoCADのマニュアルを参照してください.ライブラリをロードすれば,以下のコマンドで,ここに提示したのと同様のネットワークを生成することができます.
|
|
randomplot
randomplot2
net
removedup
reg_lines
sol_lines
fbox_lines
|
ランダムに点を生成します.
ランダムに点を生成しますが,点と点との距離がある値以上になるように点を生成します.
点の集合からネットワークを生成します.点のソートに時間がかかります.最大2,000点くらいまでが現実的です.
重なった線分を取り除きます.
線分に厚みを与え,2次元ソリッド(リージョン)を生成します.
線分に厚みと高さを与え,ソリッドモデルを生成します.
線分に厚みと高さを与え,サーフェスモデルを生成します. |
|
|
|