示例#1
0
        void generarAristas()
        {
            int    ponderacion = 0;
            int    j           = 0;
            int    generarID   = 0;
            Arista aux         = new Arista(-1, null, null, 5000);

            for (int i = 0; i < grafo.getVertices().Count; i++)
            {
                for (j = i + 1; j < grafo.getVertices().Count; j++)
                {
                    ponderacion = obtenerDistancia(grafo.getVertices()[i].getCentro(), grafo.getVertices()[j].getCentro());

                    if (ponderacion < aux.getPonderacion())
                    {
                        aux = new Arista(-1, grafo.getVertices()[i], grafo.getVertices()[j], ponderacion);
                    }
                    if (detectarObstaculos(grafo.getVertices()[i].getCentro(), grafo.getVertices()[j].getCentro()))
                    {
                        Arista arista = new Arista(generarID, grafo.getVertices()[i], grafo.getVertices()[j], ponderacion);
                        grafo.getVertices()[i].agregarArista(arista);
                        generarID++;
                        Arista _arista = new Arista(generarID, grafo.getVertices()[j], grafo.getVertices()[i], ponderacion);
                        grafo.getVertices()[j].agregarArista(_arista);
                        generarID++;
                        pictureBox1.Refresh();
                        //MessageBox.Show("Origen "+grafo.getVertices()[j].getLista()[0].getOrigen().getID());
                        //MessageBox.Show("Destino: "+grafo.getVertices()[j].getLista()[0].getDestino().getID());
                    }
                }
            }

            if (grafo.getVertices().Count > 1)
            {
                dibujarCentro(aux.getOrigen().getCentro().X, aux.getOrigen().getCentro().Y);
                dibujarCentro(aux.getDestino().getCentro().X, aux.getDestino().getCentro().Y);
            }
            else
            {
                MessageBox.Show("Debe haber como mínimo 2 vértices para conectar");
            }
            pictureBox1.Refresh();
            pintarAristas();
        }
 public void agregarArista(Arista l)
 {
     this.aL.Add(l);
 }