配列(リスト)は3D系、グラフ(ネットワーク)関係などのコーディングで多用します。配列の中身(要素)のイメージ、要素へのアクセス方法など、コーディングの感覚を掴みましょう。下記のサンプルにおけるリストの要素は整数ですが、小数点、数値がまとまった構造体、クラスインスタンス、メモリアドレス、など色々な要素でできているリストが存在します。どのような要素からなるリストも同じように一元的にあつかえる感覚を掴んでください。 空のリストを作る リストの要素を指定して初期化、作成 リストの要素を指定して初期化、作成、リストの内容をクリア 要素にアクセス(ブラケット[] アクセス) 要素の総数外にアクセスすれば当然エラー 要素に連続的にアクセス(for 文を使う) 要素の全てにアクセス(for 文を使う、インデックス・ブラケットアクセス). リストの長さ(要素数)を調べる len() 関数 要素の全てにアクセス(for 文を使う、ラムダ文) 要素の追加 append 後方に挿入 リストの連結 extend 要素の重複を許さない set セットという配列もあります。 setの要素追加は add リストの重複を取り除く → リストを一度setセットに変換して リストに再変換する とするのがpython独特の方法です。
Day: April 21, 2015
hclab. StreetView academic version
都市研究室hclab. が開発している街路ネットワーク評価ソフトのアカデミック版です。 このツールを使って、ライノで作ったグラフを調べてみましょう。
Graph tips
今日はグラフの幾何学的特性などに触れます。以下の一部をコードを書いて作図します。 孤立最近接対(Reciprocal Pair):RP 最近傍グラフ(Nearest Neighbor Graph) :NNG 最小木(Minimum Spanning Tree):MST 相対近傍グラフ(Relative Neghborhood Graph):RNG ガブリエルグラフ(Gabriel Graph):GG ドローネ網(Delaunay Triangle):DT 以下 Rhino-Python (editpythonscript) でのコード 指定範囲内(x: 0~100, t: 0~100)にランダムな点を生成 全グラフ(配列ブラケットアクセス) 全グラフ(配列ラムダ文) Nearest Neighbor Graph NNG もっとも近い点同士を結ぶ Minimum Spanning Tree: MST (最小木) 全ての点(ノード)を最小限のエッジで接続する。全ての点(ノード)が参加しているグラフ(ネットワーク)で、エッジの総長さがもっとも短いもの。下記はプリム法(グラフに接続済みのノードグループと未接続のノードグループに分け、2つのグループ間のもっとも近いノード同士を接続していく) Relative Neighborhood Graph RNG 点群から2点を取り出し、その2点間の距離を半径とする円を2点それぞれから描画し、その両方の円に他の点が一つも無い場合、その2点を結ぶ Gabriel Graph GG 点群から2点を取り出し、その2点間の距離を直径とする円を2点の中点に描画し、その円内に他の点が一つも無い場合、その2点を結ぶ Delaunay Triangle: DT ドローネ網、3点(ノード)を取り出し、その3点(ノード)を通る円内にその3点以外の点(ノード)が存在しないときにその3点(ノード)を3つのエッジでつなぐ ボロノイ・ダイアグラムと双対関係 下記はghpythonlibを使った簡易な描き方(Delaunay Triangle: DT)