graph_1_0.py → Rhino-python / GH-Python 用のGraphモジュール version 1.0 です(重みつき有向グラフ、マルチショーテストパス対応フレーム)。スタジオ用拡張モジュール置き場の
c:\MAsunit\
直下にコピーし(始めてモジュールを追加する人はパスも通してください)、アップしてライノを再起動してください。
グラフの作り方は今のところ2通り。こちらサンプルです。
graph_module_test.zip
TextDotとそれらをつないだCurveからインスタンスを作る方法(クラスGraphDot)
import graph_1_0 as gph g = gph.GraphDot(dots,cvs,ghdoc)
つながったCurveからインスタンスを作る方法(クラスGraph, hclab. Street Viewに近い)
import graph_1_0 as gph g = gph.GraphDot(dots)
全ノードアクセス
for n in g.nodes: print n, len(n.edges), "edges", n.pos
全エッジアクセス
for e in g.edges: print e
現在組み込んである関数は、ダイクストラ法による最短経路距離計算、ショーテストパス検出のみです。
g.Dijkstra(基点ノードのインスタンス)
g.DijkstraFast(基点ノードのインスタンス)
g.traceRoute(目的ノードのインスタンス)
g.traceRoutesNode(目的ノードのインスタンス)
g.traceRoutesEdge(目的ノードのインスタンス)
シングルパスダイクストラ、各ノードまでのコスト
fm = g.nodes[0] g.DijkstraFast(fm) for n in g.nodes: print n.cost
シングルパスダイクストラ、トレースルート(ノードリスト取得)
fm = g.nodes[0] g.DijkstraFast(fm) dt = g.nodes[-1] rt = g.traceRoute(dt) for n in rt: print n.name, n.pos
マルチパス対応ダイクストラ、トレースルート(ノードリスト取得、エッジリスト取得)
fm = g.nodes[0] g.Dijkstra(fm) dt = g.nodes[-1] rts = g.traceRoutesNode(dt) for rt in rts: for n in rt: print n.name, n.pos rts = g.traceRoutesEdge(dt) for rt in rts: for e in rt: print e.n1,e.n2
Comments are closed.