グラフ#ライブラリでWPFを使用していて、グラフを線形チェーンとして描画しようとしているので、いくつかの頂点とそれらを結合するエッジを次のように定義しました。
new Edge<object>(vertices[i], vertices[i+1])
しかし、問題は、結果のグラフが期待どおりに描画されないことです。次のようになります。
1-> 2-> 3-> 1-> 4
つまり、頂点3は頂点1を通過して頂点4に到達します。
これが描画メソッドのコードです
private void CreateGraphToVisualize()
{
var g = new BidirectionalGraph<object, IEdge<object>>();
// add the vertices to the graph
string[] vertices = new string[5];
for (int i = 0; i < 5; i++)
{
vertices[i] = i.ToString();
g.AddVertex(vertices[i]);
}
// add edges to the graph
g.AddEdge(new Edge<object>(vertices[0], vertices[1]));
g.AddEdge(new Edge<object>(vertices[1], vertices[2]));
g.AddEdge(new Edge<object>(vertices[2], vertices[3]));
g.AddEdge(new Edge<object>(vertices[3], vertices[4]));
GraphToVisualize = g;
}
そして、これがgraph#に関連するxamlコードの一部です
<DockPanel Grid.Row="2" Margin="10,10,13,10">
<zoom:ZoomControl>
<graphsharp:GraphLayout x:Name="graphLayout"
Graph="{Binding ElementName=root,Path=GraphToVisualize}"
LayoutAlgorithmType="FR"
OverlapRemovalAlgorithmType="FSA"
HighlightAlgorithmType="Simple"/>
</zoom:ZoomControl>
</DockPanel>