예제 #1
0
        public void MergeGraphs(Graph g, int thisVertex, int gVertex)
        {
            int oldOrder = Order;

            foreach (Vertex v in g.Vertices)
            {
                AddVertex(v.X, v.Y);
            }
            foreach (KeyValuePair <int, int> edge in g.GetEdges())
            {
                AddEdge(oldOrder + edge.Key, oldOrder + edge.Value);
            }
            AddEdge(thisVertex, oldOrder + gVertex);
        }
예제 #2
0
        public static string GraphToJSON(Graph graph)
        {
            Graph.Vertex[] vertices = graph.Vertices;
            List <KeyValuePair <int, int> > edges = graph.GetEdges();

            if (vertices != null && edges != null)
            {
                string result = "{";
                result += "\"v\":[";
                double x = 0;
                double y = 0;
                for (int i = 0; i < vertices.Length; i++)
                {
                    x       = ((int)(vertices[i].Y * 1000)) / 1000.0;
                    y       = ((int)(vertices[i].X * 1000)) / 1000.0;
                    result += "[" + x + ",";
                    result += y + "]";
                    if (i != vertices.Length - 1)
                    {
                        result += ",";
                    }
                }
                result += "]";
                if (edges.Count != 0)
                {
                    result += ",\"e\":[";
                    int e1 = 0;
                    int e2 = 0;
                    for (int i = 0; i < edges.Count; i++)
                    {
                        e1      = edges[i].Key;
                        e2      = edges[i].Value;
                        result += "[" + e1 + ",";
                        result += e2 + "]";
                        if (i != edges.Count - 1)
                        {
                            result += ",";
                        }
                    }
                    result += "]}";
                    Console.WriteLine(result);
                    return(result);
                }
                return("");
            }
            return("");
        }