void generarAristas()
        {
            int ponderacion = 0;
            int j           = 0;
            int generarID   = 0;
            //Arista aux = new Arista(-1, null, null, 5000);
            List <Point> pList;

            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());
                    pList       = new List <Point>(detectarObstaculos(grafo.getVertices()[i].getCentro(), grafo.getVertices()[j].getCentro()));
                    if (pList.Count != 0)
                    {
                        Arista arista = new Arista(generarID, grafo.getVertices()[i], grafo.getVertices()[j], ponderacion, pList);
                        grafo.getVertices()[i].agregarArista(arista);
                        generarID++;
                        pList.Reverse();
                        Arista _arista = new Arista(generarID, grafo.getVertices()[j], grafo.getVertices()[i], ponderacion, pList);
                        grafo.getVertices()[j].agregarArista(_arista);
                        generarID++;
                        //	MessageBox.Show("Primero elemento X: "+arista.getListaPixeles()[0].X+" Y:"+arista.getListaPixeles()[0].Y);

                        //MessageBox.Show("Primero elemento X: "+_arista.getListaPixeles()[0].X+" Y:"+_arista.getListaPixeles()[0].Y);
                        pictureBox1.Refresh();
                    }
                }
            }
            pictureBox1.Refresh();
            pintarAristas();
        }
示例#2
0
 private bool factible(Arista a)
 {
     for (int i = 0; i < compConexos.Count; i++)
     {
         if (a.getDestino().getID() == compConexos[i].getID())
         {
             return(false);
         }
     }
     return(true);
 }
示例#3
0
        private Arista seleccion()
        {
            Arista aux   = null;
            int    menor = 5000;

            for (int i = 0; i < candidatos.Count; i++)
            {
                if (candidatos[i].getPonderacion() < menor)
                {
                    aux   = candidatos[i];
                    menor = candidatos[i].getPonderacion();
                }
            }
            candidatos.Remove(aux);
            //candidatos.Remove(encontrarVertice(aux.getOrigen(), aux.getDestino()));
            return(aux);
        }
 public void agregarArista(Arista l)
 {
     this.aL.Add(l);
 }