Beispiel #1
0
        private static ILayout ChooseLayout(GraphLayoutType s)
        {
            EdgeDrawer ed = new EdgeDrawer();

            gd.EdgeDrawer = ed;
            ed.Color      = Color.Red;
            VertexDrawer vd = new VertexDrawer();

            gd.VertexDrawer = vd;
            vd.Shape        = VertexDrawer.VertexShape.Disk;
            ILayout fr = new FruchtermanReingoldLayout();

            switch (s)
            {
            case GraphLayoutType.Fruchterman_Reingold:
                fr = new FruchtermanReingoldLayout();
                break;

            case GraphLayoutType.Random:
                fr = new RandomLayout();
                break;

            case GraphLayoutType.Circle:
                fr = new CircleLayout();
                break;

            case GraphLayoutType.Kamada_Kawaii:
                fr = new KamadaKawaiiLayout();
                break;

            case GraphLayoutType.Grid:
                fr = new GridLayout();
                break;

            case GraphLayoutType.Sugiyama:
                SugiyamaEdgeDrawer eds = new SugiyamaEdgeDrawer();
                gd.EdgeDrawer = eds;
                eds.Color     = Color.Red;
                SugiyamaVertexDrawer vds = new SugiyamaVertexDrawer();
                gd.VertexDrawer = vds;
                vds.Shape       = VertexDrawer.VertexShape.Sphere;
                fr = new SugiyamaLayout();
                break;
            }
            return(fr);
        }
        static void Main(string[] args)
        {
            //Vertex v = new Vertex("v");
            //Vertex w = new Vertex("w");
            //Edge e = new Edge(v, w);
            //Graph g = new Graph(new List<Vertex>() { v, w }, new List<Edge>() { e });

            //Console.WriteLine(g.ToString());

            ////Console.WriteLine(g.GetEdge(v, v) == null ? "NULL" : g.GetEdge(v, v).ToString());
            //g.RemoveEdge(e);

            //Console.WriteLine(g.ToString());

            int n = 20;
            List<Vertex> vertices = new List<Vertex>();
            for (int i = 0; i < n; i++)
            {
                vertices.Add(new Vertex("V " + (i + 1)));
            }

            //Graph g = new Graph(vertices);
            //g.AddAllEdges();
            //RandomLayout layout = new RandomLayout(g,400);
            //layout.SpreadVertices();
            //GraphWorld gw = new GraphWorld(g,layout);
            //gw.ShowDialog();

            RandomGraph g = new RandomGraph(vertices);
            g.AddRandomEdges(0.5f);
            RandomLayout layout = new RandomLayout(g, 300);
             layout.SpreadVertices();
            GraphWorld gw = new GraphWorld(g, layout);
            gw.ShowDialog();

            Console.ReadKey();
        }
Beispiel #3
0
 private static ILayout ChooseLayout(GraphLayoutType s)
 {
     EdgeDrawer ed = new EdgeDrawer();
     gd.EdgeDrawer = ed;
     ed.Color = Color.Red;
     VertexDrawer vd = new VertexDrawer();
     gd.VertexDrawer = vd;
     vd.Shape = VertexDrawer.VertexShape.Disk;
     ILayout fr = new FruchtermanReingoldLayout();
     switch (s)
     {
         case GraphLayoutType.Fruchterman_Reingold:
             fr = new FruchtermanReingoldLayout();
             break;
         case GraphLayoutType.Random:
             fr = new RandomLayout();
             break;
         case GraphLayoutType.Circle:
             fr = new CircleLayout();
             break;
         case GraphLayoutType.Kamada_Kawaii:
             fr = new KamadaKawaiiLayout();
             break;
         case GraphLayoutType.Grid:
             fr = new GridLayout();
             break;
         case GraphLayoutType.Sugiyama:
             SugiyamaEdgeDrawer eds = new SugiyamaEdgeDrawer();
             gd.EdgeDrawer = eds;
             eds.Color = Color.Red;
             SugiyamaVertexDrawer vds = new SugiyamaVertexDrawer();
             gd.VertexDrawer = vds;
             vds.Shape = VertexDrawer.VertexShape.Sphere;
             fr = new SugiyamaLayout();
             break;
     }
     return fr;
 }