Rhino/GH-python Graph Module 勾配負荷設定(有向グラフ化)

一つ一つのエッジに対して、往路 復路 の距離を変更します。下のコードは勾配を求めるところまでで、勾配の値をどのように距離に変換するかは未記述です。すごく勾配負荷を影響させるか、ほどほどにするか、各自の関数(formula)を考えてください。
この関数を作ってエッジの重みを変更した後、Dijkstraでその経路選択に影響が出ます。またminisum, betweennessの計算にも影響があるはずです。

import Rhino.Geometry as rg
import rhinoscriptsyntax as rs
import graph_1_0 as gph

g = gph.Graph(cvs)

for e in g.edges:
    p1 = rg.Point3d(e.n1.pos)
    p2 = rg.Point3d(e.n2.pos)
    p1.Z = p2.Z = 0
    d = rs.Distance(p1,p2)
    h = e.n2.pos.Z - e.n1.pos.Z
    print "slope", h / d
    if h == 0:
        e.len1 = e.len2 = e.len0
    elif h > 0:#up climb
        e.len1 = e.len0#needs your formula
    else:#down hill
        e.len2 = e.len0#needs your formula

Comments are closed.