6

ここに示す例を実行したいと思います。私のマシンでは完璧に動作します。問題は、ノードの座標を変数posのどこかに格納されている配列として取得できないことです。どうすればいいですか?

ご回答ありがとうございます。

4

1 に答える 1

4

import pdb; pdb.Pdb().set_trace()に割り当てられた行の直後にa を貼り付け、posをつついたpos。これはgraph_tool.PropertyMap頂点属性を含むものです:

(Pdb) pos
<PropertyMap object with key type 'Vertex' and value type 'vector<double>', for Graph 0x2efbf90

このオブジェクトから各頂点を反復処理する直接的な方法はないようですが、グラフを取得して各頂点についてグラフに問い合わせることはできます。

(Pdb) pos.get_graph().vertices()
<graph_tool.libgraph_tool_core.VertexIterator object at 0x2f99950>

posこれは各頂点を反復し、マッピングであるへのキーとして使用できます。

(Pdb) pos[pos.get_graph().vertices().next()]
array([-37.40184702,  25.3717068 ])

または、それらすべてが必要な場合は、これをサンプル プログラムに入れることができます。

for vertex in g.vertices():
    print pos[vertex]

どちらが印刷されますか:

array([-37.40184702,  25.3717068 ])
array([-37.5790565 ,  26.77548156])
array([-35.57640651,  24.60125253])
array([-38.90262591,  24.30374   ])
array([-33.72945377,  24.31891936])
array([-32.68247364,  25.85861809])
[...]
于 2013-01-04T14:38:01.643 に答える