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; } }
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(); } }
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; } } }