Ejemplo n.º 1
0
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            int       xdif = 0;
            int       ydif = 0;
            NodoGrafo nd   = new NodoGrafo();    //nuevo nodo para mover

            if (bandera == 2 && minicio == true) //mover todo y hay seleccion de nodo inicio
            {
                xdif = e.Location.X - xinicio;
                ydif = e.Location.Y - yinicio;
                for (int i = 0; i < nodos.Count; i++)
                {
                    nodos[i].llenaNodo(nodos[i].getX() + xdif, nodos[i].getY() + ydif); //modificar la informacion del nodo
                }
                dibuja();
                minicio = false;
            }

            if (bandera == 7 && minicio == true)                                                         //mover un nodo y seleccion de inicio
            {
                xdif = e.Location.X - nodos[nodmover].getX();                                            //nueva posicion x
                ydif = e.Location.Y - nodos[nodmover].getY();                                            //nueva posicion y
                nodos[nodmover].llenaNodo(nodos[nodmover].getX() + xdif, nodos[nodmover].getY() + ydif); //modifica la informacion del nodo

                /*for (int i = 0; i < nodos.Count; i++)
                 * {
                 *  nodos[i].llenaNodo(nodos[i].getX() + xdif, nodos[i].getY() + ydif);
                 * }*/
                dibuja();
                minicio = false;
            }
        }
Ejemplo n.º 2
0
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            int xxdif = 0;
            int yydif = 0;
            List <NodoGrafo> auxnodo = nodos;
            NodoGrafo        nd      = new NodoGrafo(); //nuevo nodo para mover

            if (bandera == 2 && minicio == true)        //mover todo y hay seleccion de nodo inicio
            {
                xxdif = e.Location.X - xinicio;
                yydif = e.Location.Y - yinicio;
                for (int i = 0; i < auxnodo.Count; i++)
                {
                    auxnodo[i].llenaNodo(auxnodo[i].getX() + xxdif, auxnodo[i].getY() + yydif); //modificar la informacion del nodo
                }
                dibuja();
            }

            if (bandera == 7 && minicio == true)                                                                 //mover un nodo y seleccion de inicio
            {
                xxdif = e.Location.X - auxnodo[nodmover].getX();                                                 //nueva posicion x
                yydif = e.Location.Y - auxnodo[nodmover].getY();                                                 //nueva posicion y
                auxnodo[nodmover].llenaNodo(auxnodo[nodmover].getX() + xxdif, auxnodo[nodmover].getY() + yydif); //modifica la informacion del nodo
                dibuja();
            }
        }
Ejemplo n.º 3
0
        int inicio   = 10000;     //no se le ha dado clic a nada

        public void acciones1()   //picturebox1
        {
            int eliminar = 1000;  //ningun noodo ha sido seleccionado para eliminar

            if (bandera == 1)     //trabajar en el picture box 1
            {
                NodoGrafo nod = new NodoGrafo();
                nod.llenaNodo(cordx - 20, cordy - 20);
                nod.llenanombre(nodos.Count()); //identificador de nodo, nodos.Count es para darle secuencia 1234
                nodos.Add(nod);                 //ir agregando a la lista
                dibuja();                       //crea un nodo
            }

            if (bandera == 2) //mover
            {
                dibuja();
            }
            if (bandera == 3) //eliminar
            {
                for (int i = 0; i < nodos.Count(); i++)
                {
                    if (cordx > nodos[i].getX() - 40 && cordx <nodos[i].getX() + 40 && cordy> nodos[i].getY() - 40 && cordy < nodos[i].getY() + 40) //checar el que toco
                    {
                        eliminar = i;                                                                                                               //guarda el seleccionado
                    }
                }
                if (eliminar != 1000)         //checa el nodo seleeccionado
                {
                    nodos.RemoveAt(eliminar); //elimina el seleccionado
                    dibuja();
                }
            }
            if (bandera == 4) //arista dirigida
            {
                for (int i = 0; i < nodos.Count(); i++)
                {
                    if (cordx > nodos[i].getX() - 40 && cordx <nodos[i].getX() + 40 && cordy> nodos[i].getY() - 40 && cordy < nodos[i].getY() + 40)
                    {
                        inicio  = i;    //el nodo que toque primero lo guardo
                        binicio = true; //ya se toco el punto de inicio
                    }
                }
                if (bfinal == true && binicio == true) //ya toque dos nodos
                {
                    dibuja();                          //dibujar arista
                    bfinal  = false;
                    binicio = false;
                }
            }
            if (bandera == 5) //arista no dirigida
            {
                for (int i = 0; i < nodos.Count(); i++)
                {
                    if (cordx > nodos[i].getX() - 40 && cordx <nodos[i].getX() + 40 && cordy> nodos[i].getY() - 40 && cordy < nodos[i].getY() + 40)
                    {
                        inicio  = i;
                        binicio = true; //ya se toco el punto de inicio
                    }
                }
                if (bfinal == true && binicio == true)
                {
                    dibuja();
                    bfinal  = false;
                    binicio = false;
                }
            }
        }