public void SetWeights() { for (int i = 0; i < IVertexList.Count; ++i) { for (int j = 0; j < IVertexList[i].GetEdgesListCount(); ++j) { IVertexList[i][j].SetWeight(ToolFunction.Distance(IVertexList[i].GetCirclePoint(), IVertexList[i][j].Destination.GetCirclePoint())); } } }
private void CreateGraph() { if (ICircleList.Count > 0) { this.IGraph = new Graph(); ICircleList = SortedCircleList(); foreach (Circle circle in ICircleList) { IGraph.AddVertex(new Vertex(circle, IGraph.GetVertexCount() + 1)); } for (int i = 0; i < ICircleList.Count - 1; ++i) { for (int j = i + 1; j < ICircleList.Count; ++j) { if (IsObstacleFree(IGraph[i].Circle, IGraph[j].Circle)) { double distance = ToolFunction.Distance(IGraph[j].GetCirclePoint(), IGraph[i].GetCirclePoint()); IGraph[i].AddEdge(new Edge(distance, IGraph[j], new List <Point>(this.Coords))); this.Coords.Reverse(); IGraph[j].AddEdge(new Edge(distance, IGraph[i], new List <Point>(this.Coords))); Coords.Clear(); } } } ModifyBitmapFromGraph(); this.IMessage = "Grafo creado exitosamente."; } else { this.IMessage = "No existen elementos para crear un grafo."; this.IStatus = false; } }