graph_1_0 はモジュールからクラスインスタンスを作る形でしたが、クラス内の関数などがエディタ補完機能で、補完されずに使いにくかったので、モジュール対して直に初期化するようにしました(その代わり複数のグラフを同時に作れません)。その他、関数も追加してあります(ネットワーク距離でのクラスタリング、ward, k-means++ など)。
import graph_1_1 as g g.initFromCrv(cvs) print g.nodes print g.edges
座標精度により、カーブの頂点がマッチしていないと、グラフがうまく生成されない、というやっかいな問題ですが、スタジオユーティリティーモジュール
に
def roundLineCVs(cvs,position):
    """
    round of Line or Polyline  start and end point coordinate
    cvs:
        list of curve (Line or Polyline)
    position:
        round position
    return:
        rounded curve list
    """
という関数が実装されています。ライン、ポリラインの始点・終点の座標の指定桁を丸める(切り捨てる)関数です。
import graph_1_1 as g import studio_utility_1_0 as su cvs = su.roundLineCVs(cvs ,1) g.initFromCrv(cvs)
これで無理やりライン、ポリラインを変換すると割りとグラフ化できる率があがります。
Comments are closed.