home *** CD-ROM | disk | FTP | other *** search
- #include <LEDA/graph.h>
- #include <LEDA/graph_alg.h>
-
- #include <LEDA/window.h>
-
- declare2(GRAPH,int,int)
-
- main()
- {
- GRAPH(int,int) G;
-
- cout << "Give a planar graph.\n";
-
- test_graph(G);
-
- if ( ! PLANAR(G) )
- { cout << "Graph is not planar\n";
- exit(1);
- }
-
- if (Yes("print planar map ? ")) G.print();
-
- if (!Yes("draw ? ")) exit(1);
-
- node v,w;
-
-
- node_array(int) x(G),y(G);
-
- STRAIGHT_LINE_EMBEDDING(G,x,y);
-
- int xmax=0;
- int ymax=0;
- forall_nodes(w,G)
- { if (x[w]>xmax) xmax= x[w];
- if (y[w]>ymax) ymax= y[w];
- }
-
- int maxcoord = Max(xmax,ymax);
-
-
- window W;
-
- W.init(-5,maxcoord+5,-5);
-
- W.set_line_width(2);
- W.set_node_width(10);
-
- edge e;
-
- forall_edges(e,G)
- { v = source(e);
- w = target(e);
- W.draw_edge(x[v],y[v],x[w],y[w],blue);
- }
-
- int i = 1;
- forall_nodes(v,G) W.draw_text_node(x[v],y[v],form("%d",i++),red);
-
- W.read_mouse();
-
- forall_nodes(v,G) cout << form("x = %2d y = %2d\n",x[v],y[v]);
-
-
- }
-