arc_graph — graph with nodes corresponding to arcs
g1 = arc_graph(g)
arc_graph returns the directed graph g1 with the nodes
corresponding to the arcs of the directed graph g.
g1 is defined in the following way:
- its nodes correspond to the arcs of g
- 2 nodes of the new graph are adjacent if and only if the corresponding
arcs of the graph g are consecutive.
The coordinates of the nodes of g1 are given by the middle points of the
corresponding edges of g.
If such an arc graph does not exist, an empty vector is returned.
//create the initial graph
ta=[1 1 2 4 4 5 6 7 2 3 5 1];
he=[2 6 3 6 7 8 8 8 4 7 3 5];
g=make_graph('foo',1,8,ta,he);
g.nodes.graphics.x=[281 284 360 185 405 182 118 45];
g.nodes.graphics.y=[262 179 130 154 368 248 64 309];
//customize display
g.nodes.graphics.display='name';
g.edges.graphics.name=string(1:edge_number(g));
g.edges.graphics.display='name';
show_graph(g);
//compute the arc_graph
g1=arc_graph(g);
g1.edges.graphics.name=string(1:edge_number(g1));
g1.edges.graphics.display='name';
g1.nodes.graphics.display='name';
show_graph(g1,'new');
// merge the two graph
g1.nodes.graphics.colors(2,:)=color('red');
g1.edges.graphics.foreground(:)=color('red');
show_graph(graph_union(g,g1,%f),'new')