private BidirectionalGraph <DataVertex, DataEdge> GenerateGraph(int[,] matrix) { var dataGraph = new GraphData(); List <string> colours = new List <string>() { "Gray", "AntiqueWhite", "Aquamarine", "CornflowerBlue", "BurlyWood", "Cyan", "DarkSeaGreen", "Crimson", "GreenYellow", "IndianRed", "LightBlue", "LightGreen", "LightPink", "LightSalmon", "Teal", "MistyRose", "PaleTurquoise", "RosyBrown", "Peru", "SpringGreen" }; for (int i = 0; i < G1.IncidenceMatrix.GetLength(0); i++) { var vertex = new DataVertex($"V:{i} K:{G1.Vertices[i].Color}"); vertex.Id = i; vertex.Color = colours[G1.Vertices[i].Color]; dataGraph.AddVertex(vertex); } var vlist = dataGraph.Vertices.ToList(); for (int i = 0; i < G1.IncidenceMatrix.GetLength(0); i++) { for (int j = 0; j < G1.IncidenceMatrix.GetLength(1); j++) { if ((G1.IncidenceMatrix[i, j] == G1.IncidenceMatrix[j, i]) && G1.IncidenceMatrix[i, j] == 1) { var edge = new DataEdge(vlist[i], vlist[j]); edge.Id = i; edge.Color = "Black"; dataGraph.AddEdge(edge); } } } Area.GenerateGraph(true, true); return(dataGraph); }