Пример #1
0
        private void DibujarEnlace(int peso, NodoVisual desde, NodoVisual hasta) // Funcion : Dibujo; Se encarga de trazar una linea entre dos nodos
        {
            Graphics     g            = prims_kruskal.Principal.K.CreateGraphics();
            Point        d            = new Point(desde.Center.X + 15, desde.Center.Y + 15);
            Point        h            = new Point(hasta.Center.X + 15, hasta.Center.Y + 15);
            EnlaceVisual e            = new EnlaceVisual(peso, desde, hasta);
            Pen          pen          = new Pen(pincelNegro, 3);
            bool         selectEnlace = true;

            if (this.enlaces.Count > 0)
            {
                foreach (var Enlace in enlaces)
                {
                    if (e.NodoA == Enlace.NodoA && e.NodoB == Enlace.NodoB || e.NodoB == Enlace.NodoA && e.NodoA == Enlace.NodoB)
                    {
                        MessageBox.Show("No se puede repetir un enlace ya creado", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        selectEnlace = false;
                    }
                }
            }
            if (e.NodoA == e.NodoB)
            {
                MessageBox.Show("No se puede crear un enlace a si mismo", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                selectEnlace = false;
            }
            if (selectEnlace)
            {
                enlaces.Add(e);
                g.DrawLine(new Pen(e.Color, 3), d, h);
                g.FillEllipse(pincelVerde, e.Medio.X, e.Medio.Y, 15, 15);
                g.DrawString(e.Peso.ToString(), letra, pincelVerde, e.Medio.X + 3, e.Medio.Y + 15);
                this.g.AgregarEnlace(e);
            }
        }
Пример #2
0
 private void AgregaNodo(NodoVisual n)
 {
     g.AgregarNodo(n);
     this.nodos.Add(n);
     Desde.Items.Add(n.nombre);
     Hasta.Items.Add(n.nombre);
 }
Пример #3
0
        private void DibujarEnlace(int peso, NodoVisual desde, NodoVisual hasta) // Funcion : Dibujo; Se encarga de trazar una linea entre dos nodos
        {
            Point        d = new Point(desde.Center.X + TamNodo / 2, desde.Center.Y + TamNodo / 2);
            Point        h = new Point(hasta.Center.X + TamNodo / 2, hasta.Center.Y + TamNodo / 2);
            EnlaceVisual e = new EnlaceVisual(peso, desde, hasta);

            bool selectEnlace = true;

            if (this.enlaces.Count > 0)
            {
                foreach (var Enlace in enlaces)
                {
                    if (e.NodoA == Enlace.NodoA && e.NodoB == Enlace.NodoB || e.NodoB == Enlace.NodoA && e.NodoA == Enlace.NodoB)
                    {
                        //MessageBox.Show("No se puede repetir un enlace ya creado", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Enlace.Peso = peso;
                        this.Dibujar(true);
                        selectEnlace = false;
                        return;
                    }
                }
            }
            if (e.NodoA == e.NodoB)
            {
                MessageBox.Show("No se puede crear un enlace a si mismo", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                selectEnlace = false;
            }
            if (selectEnlace)
            {
                enlaces.Add(e);
                this.g.AgregarEnlace(e);
                this.Dibujar(true);
            }
        }
Пример #4
0
        public object Clone()
        {
            var nuevo = new NodoVisual();

            nuevo.nombre     = this.nombre;
            nuevo.Center     = this.Center;
            nuevo.heuristica = this.heuristica;
            nuevo.PosLetra   = this.PosLetra;
            return(nuevo);
        }
Пример #5
0
 private void Form1_MouseDown(object sender, MouseEventArgs e) //evento: movimiento; genera un cuadrado alrededor del circulo que al tocarlo simula la seleccion del nodo
 {
     foreach (NodoVisual n in this.nodos)
     {
         if ((n.Center.X <= e.X) && (n.Center.X + 30 >= e.X) && (n.Center.Y <= e.Y) && (n.Center.Y + 30 >= e.Y))
         {
             this.seleccionado = n;
         }
     }
 }
Пример #6
0
 public Principal() // constructor
 {
     InitializeComponent();
     this.nodos = new List<Nodo>(); // lista de nodos
     this.enlaces = new List<Enlace>();
     this.resolucion = new List<Enlace>();
     this.indiceResolucion = 0;
     K = this;
     this.seleccionado = null; //inicializa seleccionado en null 
     ///////////////////
 }
Пример #7
0
 public Principal() // constructor
 {
     InitializeComponent();
     this.nodos            = new List <Nodo>(); // lista de nodos
     this.enlaces          = new List <Enlace>();
     this.resolucion       = new List <Enlace>();
     this.indiceResolucion = 0;
     //K = this;
     this.seleccionado = null; //inicializa seleccionado en null
     ///////////////////
 }
Пример #8
0
        private void Form1_MouseDown(object sender, MouseEventArgs e) //evento: movimiento; genera un cuadrado alrededor del circulo que al tocarlo simula la seleccion del nodo
        {
            if (NodoInserta != null)
            {
                AgregaNodo(NodoInserta.Clone() as NodoVisual);
                NodoInserta = null;
                Dibujar(true);
                return;
            }

            foreach (NodoVisual n in this.nodos)
            {
                if ((n.Center.X <= e.X) && (n.Center.X + TamNodo >= e.X) && (n.Center.Y <= e.Y) && (n.Center.Y + TamNodo >= e.Y))
                {
                    if (e.Button == MouseButtons.Left)
                    {
                        this.seleccionado = n;
                    }
                    else
                    {
                        n.SiguientePosicionLetra();
                        Dibujar(true);
                    }
                    return;
                }
            }

            foreach (EnlaceVisual enl in this.enlaces)
            {
                if ((enl.CurMedio.X <= e.X) && (enl.CurMedio.X + TamNodo / 2 >= e.X) && (enl.CurMedio.Y <= e.Y) && (enl.CurMedio.Y + TamNodo / 2 >= e.Y))
                {
                    if (e.Button == MouseButtons.Right)
                    {
                        enl.SiguientePosicionLetra();
                        Dibujar(true);
                    }
                    else if (e.Button == MouseButtons.Left)
                    {
                        this.Desde.Text    = enl.NodoA.nombre;
                        this.Hasta.Text    = enl.NodoB.nombre;
                        this.numPeso.Value = enl.Peso;
                    }
                    return;
                }
            }
        }
Пример #9
0
 private void btnDibujarNodo_Click(object sender, EventArgs e) // Funcion: recibe los valores para dibijar el nodo, crea un nuevo punto y un nuevo nodo y llama a la funcion para dibujar
 {
     if (this.textBox3.Text != "" && this.textBox4.Text != "")
     {
         NodoVisual n = new NodoVisual();
         int x, y = 0;
         x = int.Parse(this.textBox3.Text);
         y = int.Parse(this.textBox4.Text);
         Point p = new Point(x, y);
         n.Center = p;
         n.nombre = this.textBox1.Text;
         bool selectNodo = true;
         if (this.nodos.Count > 0)
         {
             foreach (var Nodo in nodos)
             {
                 if (n.nombre == Nodo.nombre)
                 {
                     MessageBox.Show("No se puede repetir el nombre de un Nodo", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     selectNodo = false;
                 }
             }
         }
         if (selectNodo)
         {
             this.nodos.Add(n);
             this.g.AgregarNodo((Nodo)n);
             this.Dibujar();
             this.textBox1.Text = string.Empty;
             this.textBox3.Text = string.Empty;
             this.textBox4.Text = string.Empty;
         }
     }
     else
     {
         MessageBox.Show("Debe completar los campor X, Y!", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     
     
 }
Пример #10
0
        private void btnDibujarNodo_Click(object sender, EventArgs e) // Funcion: recibe los valores para dibijar el nodo, crea un nuevo punto y un nuevo nodo y llama a la funcion para dibujar
        {
            NodoVisual n = new NodoVisual();

            if (string.IsNullOrWhiteSpace(this.textBox1.Text))
            {
                MessageBox.Show("El nombre no puede ser blanco", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            n.nombre     = this.textBox1.Text.Trim();
            n.heuristica = (int)this.numHeu.Value;

            foreach (var nodo in nodos)
            {
                if (n.nombre == nodo.nombre)
                {
                    MessageBox.Show("No se puede repetir el nombre de un Nodo", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            NodoInserta = n;
        }
Пример #11
0
        private void btnGrafo3_Click(object sender, EventArgs e)  // crea grafo de 3 nodos
        {
            this.Reset();
            var n1 = new NodoVisual();

            n1.Center = new Point(13, 13);
            n1.nombre = "N1";
            var n2 = new NodoVisual();

            n2.Center = new Point(300, 200);
            n2.nombre = "N2";
            var n3 = new NodoVisual();

            n3.Center = new Point(450, 13);
            n3.nombre = "N3";

            g.AgregarNodo(n1);
            g.AgregarNodo(n2);
            g.AgregarNodo(n3);

            this.nodos.Add(n1);
            this.nodos.Add(n2);
            this.nodos.Add(n3);

            var e1 = new EnlaceVisual(2, n1, n2);
            var e2 = new EnlaceVisual(7, n2, n3);
            var e3 = new EnlaceVisual(3, n1, n3);

            g.AgregarEnlace(e1);
            g.AgregarEnlace(e2);
            g.AgregarEnlace(e3);

            this.enlaces.Add(e1);
            this.enlaces.Add(e2);
            this.enlaces.Add(e3);

            this.Dibujar();
        }
Пример #12
0
 private void btnDibujarNodo_Click(object sender, EventArgs e) // Funcion: recibe los valores para dibijar el nodo, crea un nuevo punto y un nuevo nodo y llama a la funcion para dibujar
 {
     if (this.textBox3.Text != "" && this.textBox4.Text != "")
     {
         NodoVisual n = new NodoVisual();
         int        x, y = 0;
         x = int.Parse(this.textBox3.Text);
         y = int.Parse(this.textBox4.Text);
         Point p = new Point(x, y);
         n.Center = p;
         n.nombre = this.textBox1.Text;
         bool selectNodo = true;
         if (this.nodos.Count > 0)
         {
             foreach (var Nodo in nodos)
             {
                 if (n.nombre == Nodo.nombre)
                 {
                     MessageBox.Show("No se puede repetir el nombre de un Nodo", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     selectNodo = false;
                 }
             }
         }
         if (selectNodo)
         {
             this.nodos.Add(n);
             this.g.AgregarNodo((Nodo)n);
             this.Dibujar();
             this.textBox1.Text = string.Empty;
             this.textBox3.Text = string.Empty;
             this.textBox4.Text = string.Empty;
         }
     }
     else
     {
         MessageBox.Show("Debe completar los campor X, Y!", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Пример #13
0
 private void DibujarEnlace(int peso, NodoVisual desde, NodoVisual hasta) // Funcion : Dibujo; Se encarga de trazar una linea entre dos nodos
 {
     Graphics g = prims_kruskal.Principal.K.CreateGraphics();
     Point d = new Point(desde.Center.X + 15, desde.Center.Y + 15);
     Point h = new Point(hasta.Center.X + 15, hasta.Center.Y + 15);
     EnlaceVisual e = new EnlaceVisual(peso, desde, hasta);
     Pen pen = new Pen(pincelNegro, 3); 
     bool selectEnlace = true;
     if (this.enlaces.Count > 0)
     {
         foreach (var Enlace in enlaces)
         {
             if (e.NodoA == Enlace.NodoA && e.NodoB == Enlace.NodoB || e.NodoB == Enlace.NodoA && e.NodoA == Enlace.NodoB)
             {
                 MessageBox.Show("No se puede repetir un enlace ya creado", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 selectEnlace = false;
             }
         }
     }
     if (e.NodoA == e.NodoB)
     {
         MessageBox.Show("No se puede crear un enlace a si mismo", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
         selectEnlace = false;
     }
     if (selectEnlace)
     {
         enlaces.Add(e);
         g.DrawLine(new Pen(e.Color, 3), d, h);
         g.FillEllipse(pincelVerde, e.Medio.X, e.Medio.Y, 15, 15);
         g.DrawString(e.Peso.ToString(), letra, pincelVerde, e.Medio.X + 3, e.Medio.Y + 15);
         this.g.AgregarEnlace(e);
     }
 }
Пример #14
0
 private void Form1_MouseUp(object sender, MouseEventArgs e)// evento: movimiento; suelta el nodo cuando soltas el click del mouse
 {
     this.seleccionado = null;
 }
Пример #15
0
        private void abrirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    this.Reset();
                    if (File.Exists(openFileDialog1.FileName))
                    {
                        rutaArchivo = openFileDialog1.FileName;
                        using (var read = new StreamReader(openFileDialog1.FileName, Encoding.Default))
                        {
                            // 0-> nodo 1-> enlace 2-> imagen
                            byte   tipoTag = 0;
                            string linea;
                            while ((linea = read.ReadLine()) != null)
                            {
                                if (linea.StartsWith("["))
                                {
                                    if (linea.Equals(tagNodos))
                                    {
                                        tipoTag = 0;
                                    }
                                    else if (linea.Equals(tagEnlaces))
                                    {
                                        tipoTag = 1;
                                    }
                                    else if (linea.Equals(tagImagen))
                                    {
                                        tipoTag = 2;
                                    }
                                    continue;
                                }
                                if (tipoTag == 0)
                                {
                                    var n1 = new NodoVisual(linea);
                                    AgregaNodo(n1);
                                }
                                else if (tipoTag == 1)
                                {
                                    var e1 = new EnlaceVisual(linea, this.nodos);
                                    g.AgregarEnlace(e1);
                                    this.enlaces.Add(e1);
                                }
                                else if (tipoTag == 2)
                                {
                                    AsignarImagen(Path.Combine(Path.GetDirectoryName(openFileDialog1.FileName), linea));
                                }
                            }
                        }

                        salvado            = true;
                        tlabelArchivo.Text = rutaArchivo;
                        tlabelGrabado.Text = " ";
                        this.Dibujar(false);
                    }
                    else
                    {
                        throw new Exception("No existe el archivo " + openFileDialog1.FileName);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                var eclosed = e as FormClosingEventArgs;
                if (eclosed != null)
                {
                    eclosed.Cancel = true;
                }
            }
        }
Пример #16
0
        private void btnGrafo3_Click(object sender, EventArgs e)  // crea grafo de 3 nodos
        {
            this.Reset();
            var n1 = new NodoVisual();
            n1.Center = new Point(13, 13);
            n1.nombre = "N1";
            var n2 = new NodoVisual();
            n2.Center = new Point(300, 200);
            n2.nombre = "N2";
            var n3 = new NodoVisual();
            n3.Center = new Point(450, 13);
            n3.nombre = "N3";

            g.AgregarNodo(n1);
            g.AgregarNodo(n2);
            g.AgregarNodo(n3);

            this.nodos.Add(n1);
            this.nodos.Add(n2);
            this.nodos.Add(n3);

            var e1 = new EnlaceVisual(2, n1, n2);
            var e2 = new EnlaceVisual(7, n2, n3);
            var e3 = new EnlaceVisual(3, n1, n3);

            g.AgregarEnlace(e1);
            g.AgregarEnlace(e2);
            g.AgregarEnlace(e3);

            this.enlaces.Add(e1);
            this.enlaces.Add(e2);
            this.enlaces.Add(e3);

            this.Dibujar();
        }
Пример #17
0
 private void Form1_MouseUp(object sender, MouseEventArgs e)// evento: movimiento; suelta el nodo cuando soltas el click del mouse
 {
     this.seleccionado = null;
 }
Пример #18
0
        private void btnGrafo6_Click(object sender, EventArgs e)
        {
            this.Reset();

            var n1 = new NodoVisual();
            n1.Center = new Point(13, 13);
            n1.nombre = "N1";
            var n2 = new NodoVisual();
            n2.Center = new Point(300, 200);
            n2.nombre = "N2";
            var n3 = new NodoVisual();
            n3.Center = new Point(450, 13);
            n3.nombre = "N3";
            var n4 = new NodoVisual();
            n4.Center = new Point(450, 350);
            n4.nombre = "N4";
            var n5 = new NodoVisual();
            n5.Center = new Point(13, 350);
            n5.nombre = "N5";
            var n6 = new NodoVisual();
            n6.Center = new Point(200, 200);
            n6.nombre = "N6";

            g.AgregarNodo(n1);
            g.AgregarNodo(n2);
            g.AgregarNodo(n3);
            g.AgregarNodo(n4);
            g.AgregarNodo(n5);
            g.AgregarNodo(n6);

            this.nodos.Add(n1);
            this.nodos.Add(n2);
            this.nodos.Add(n3);
            this.nodos.Add(n4);
            this.nodos.Add(n5);
            this.nodos.Add(n6);

            var e1 = new EnlaceVisual(2, n1, n2);
            var e2 = new EnlaceVisual(7, n2, n3);
            var e3 = new EnlaceVisual(3, n1, n3);
            var e4 = new EnlaceVisual(20, n1, n6);
            var e5 = new EnlaceVisual(5, n3, n6);
            var e6 = new EnlaceVisual(9, n1, n5);
            var e7 = new EnlaceVisual(3, n5, n4);

            g.AgregarEnlace(e1);
            g.AgregarEnlace(e2);
            g.AgregarEnlace(e3);
            g.AgregarEnlace(e4);
            g.AgregarEnlace(e5);
            g.AgregarEnlace(e6);
            g.AgregarEnlace(e7);

            this.enlaces.Add(e1);
            this.enlaces.Add(e2);
            this.enlaces.Add(e3);
            this.enlaces.Add(e4);
            this.enlaces.Add(e5);
            this.enlaces.Add(e6);
            this.enlaces.Add(e7);

            this.Dibujar();
        }
Пример #19
0
        private void btnGrafo12_Click(object sender, EventArgs e)
        {
            this.Reset();

            var n1 = new NodoVisual();
            n1.Center = new Point(13, 13);
            n1.nombre = "N1";
            var n2 = new NodoVisual();
            n2.Center = new Point(300, 200);
            n2.nombre = "N2";
            var n3 = new NodoVisual();
            n3.Center = new Point(450, 13);
            n3.nombre = "N3";
            var n4 = new NodoVisual();
            n4.Center = new Point(450, 350);
            n4.nombre = "N4";
            var n5 = new NodoVisual();
            n5.Center = new Point(13, 350);
            n5.nombre = "N5";
            var n6 = new NodoVisual();
            n6.Center = new Point(200, 200);
            n6.nombre = "N6";
            var n7 = new NodoVisual();
            n7.Center = new Point(570, 405);
            n7.nombre = "N7";
            var n8 = new NodoVisual();
            n8.Center = new Point(570, 280);
            n8.nombre = "N8";
            var n9 = new NodoVisual();
            n9.Center = new Point(400, 150);
            n9.nombre = "N9";
            var n10 = new NodoVisual();
            n10.Center = new Point(500, 200);
            n10.nombre = "N10";
            var n11 = new NodoVisual();
            n11.Center = new Point(50, 405);
            n11.nombre = "N11";
            var n12 = new NodoVisual();
            n12.Center = new Point(200, 405);
            n12.nombre = "N12";


            g.AgregarNodo(n1);
            g.AgregarNodo(n2);
            g.AgregarNodo(n3);
            g.AgregarNodo(n4);
            g.AgregarNodo(n5);
            g.AgregarNodo(n6);
            g.AgregarNodo(n7);
            g.AgregarNodo(n8);
            g.AgregarNodo(n9);
            g.AgregarNodo(n10);
            g.AgregarNodo(n11);
            g.AgregarNodo(n12);

            this.nodos.Add(n1);
            this.nodos.Add(n2);
            this.nodos.Add(n3);
            this.nodos.Add(n4);
            this.nodos.Add(n5);
            this.nodos.Add(n6);
            this.nodos.Add(n7);
            this.nodos.Add(n8);
            this.nodos.Add(n9);
            this.nodos.Add(n10);
            this.nodos.Add(n11);
            this.nodos.Add(n12);

            var e1 = new EnlaceVisual(2, n1, n2);
            var e2 = new EnlaceVisual(7, n2, n3);
            var e3 = new EnlaceVisual(3, n1, n3);
            var e4 = new EnlaceVisual(20, n1, n6);
            var e5 = new EnlaceVisual(5, n3, n6);
            var e6 = new EnlaceVisual(9, n1, n5);
            var e7 = new EnlaceVisual(3, n5, n4);
            var e8 = new EnlaceVisual(22, n4, n7);
            var e9 = new EnlaceVisual(8, n7, n8);
            var e10 = new EnlaceVisual(1, n9, n10);
            var e11 = new EnlaceVisual(10, n10, n11);
            var e12 = new EnlaceVisual(52, n11, n12);
            var e13 = new EnlaceVisual(19, n12, n7);

            g.AgregarEnlace(e1);
            g.AgregarEnlace(e2);
            g.AgregarEnlace(e3);
            g.AgregarEnlace(e4);
            g.AgregarEnlace(e5);
            g.AgregarEnlace(e6);
            g.AgregarEnlace(e7);
            g.AgregarEnlace(e8);
            g.AgregarEnlace(e9);
            g.AgregarEnlace(e10);
            g.AgregarEnlace(e11);
            g.AgregarEnlace(e12);
            g.AgregarEnlace(e13);

            this.enlaces.Add(e1);
            this.enlaces.Add(e2);
            this.enlaces.Add(e3);
            this.enlaces.Add(e4);
            this.enlaces.Add(e5);
            this.enlaces.Add(e6);
            this.enlaces.Add(e7);
            this.enlaces.Add(e8);
            this.enlaces.Add(e9);
            this.enlaces.Add(e10);
            this.enlaces.Add(e11);
            this.enlaces.Add(e12);
            this.enlaces.Add(e13);

            this.Dibujar();
        }
Пример #20
0
        private void btnGrafo12_Click(object sender, EventArgs e)
        {
            this.Reset();

            var n1 = new NodoVisual();

            n1.Center = new Point(13, 13);
            n1.nombre = "N1";
            var n2 = new NodoVisual();

            n2.Center = new Point(300, 200);
            n2.nombre = "N2";
            var n3 = new NodoVisual();

            n3.Center = new Point(450, 13);
            n3.nombre = "N3";
            var n4 = new NodoVisual();

            n4.Center = new Point(450, 350);
            n4.nombre = "N4";
            var n5 = new NodoVisual();

            n5.Center = new Point(13, 350);
            n5.nombre = "N5";
            var n6 = new NodoVisual();

            n6.Center = new Point(200, 200);
            n6.nombre = "N6";
            var n7 = new NodoVisual();

            n7.Center = new Point(570, 405);
            n7.nombre = "N7";
            var n8 = new NodoVisual();

            n8.Center = new Point(570, 280);
            n8.nombre = "N8";
            var n9 = new NodoVisual();

            n9.Center = new Point(400, 150);
            n9.nombre = "N9";
            var n10 = new NodoVisual();

            n10.Center = new Point(500, 200);
            n10.nombre = "N10";
            var n11 = new NodoVisual();

            n11.Center = new Point(50, 405);
            n11.nombre = "N11";
            var n12 = new NodoVisual();

            n12.Center = new Point(200, 405);
            n12.nombre = "N12";


            g.AgregarNodo(n1);
            g.AgregarNodo(n2);
            g.AgregarNodo(n3);
            g.AgregarNodo(n4);
            g.AgregarNodo(n5);
            g.AgregarNodo(n6);
            g.AgregarNodo(n7);
            g.AgregarNodo(n8);
            g.AgregarNodo(n9);
            g.AgregarNodo(n10);
            g.AgregarNodo(n11);
            g.AgregarNodo(n12);

            this.nodos.Add(n1);
            this.nodos.Add(n2);
            this.nodos.Add(n3);
            this.nodos.Add(n4);
            this.nodos.Add(n5);
            this.nodos.Add(n6);
            this.nodos.Add(n7);
            this.nodos.Add(n8);
            this.nodos.Add(n9);
            this.nodos.Add(n10);
            this.nodos.Add(n11);
            this.nodos.Add(n12);

            var e1  = new EnlaceVisual(2, n1, n2);
            var e2  = new EnlaceVisual(7, n2, n3);
            var e3  = new EnlaceVisual(3, n1, n3);
            var e4  = new EnlaceVisual(20, n1, n6);
            var e5  = new EnlaceVisual(5, n3, n6);
            var e6  = new EnlaceVisual(9, n1, n5);
            var e7  = new EnlaceVisual(3, n5, n4);
            var e8  = new EnlaceVisual(22, n4, n7);
            var e9  = new EnlaceVisual(8, n7, n8);
            var e10 = new EnlaceVisual(1, n9, n10);
            var e11 = new EnlaceVisual(10, n10, n11);
            var e12 = new EnlaceVisual(52, n11, n12);
            var e13 = new EnlaceVisual(19, n12, n7);

            g.AgregarEnlace(e1);
            g.AgregarEnlace(e2);
            g.AgregarEnlace(e3);
            g.AgregarEnlace(e4);
            g.AgregarEnlace(e5);
            g.AgregarEnlace(e6);
            g.AgregarEnlace(e7);
            g.AgregarEnlace(e8);
            g.AgregarEnlace(e9);
            g.AgregarEnlace(e10);
            g.AgregarEnlace(e11);
            g.AgregarEnlace(e12);
            g.AgregarEnlace(e13);

            this.enlaces.Add(e1);
            this.enlaces.Add(e2);
            this.enlaces.Add(e3);
            this.enlaces.Add(e4);
            this.enlaces.Add(e5);
            this.enlaces.Add(e6);
            this.enlaces.Add(e7);
            this.enlaces.Add(e8);
            this.enlaces.Add(e9);
            this.enlaces.Add(e10);
            this.enlaces.Add(e11);
            this.enlaces.Add(e12);
            this.enlaces.Add(e13);

            this.Dibujar();
        }
Пример #21
0
        private void btnGrafo6_Click(object sender, EventArgs e)
        {
            this.Reset();

            var n1 = new NodoVisual();

            n1.Center = new Point(13, 13);
            n1.nombre = "N1";
            var n2 = new NodoVisual();

            n2.Center = new Point(300, 200);
            n2.nombre = "N2";
            var n3 = new NodoVisual();

            n3.Center = new Point(450, 13);
            n3.nombre = "N3";
            var n4 = new NodoVisual();

            n4.Center = new Point(450, 350);
            n4.nombre = "N4";
            var n5 = new NodoVisual();

            n5.Center = new Point(13, 350);
            n5.nombre = "N5";
            var n6 = new NodoVisual();

            n6.Center = new Point(200, 200);
            n6.nombre = "N6";

            g.AgregarNodo(n1);
            g.AgregarNodo(n2);
            g.AgregarNodo(n3);
            g.AgregarNodo(n4);
            g.AgregarNodo(n5);
            g.AgregarNodo(n6);

            this.nodos.Add(n1);
            this.nodos.Add(n2);
            this.nodos.Add(n3);
            this.nodos.Add(n4);
            this.nodos.Add(n5);
            this.nodos.Add(n6);

            var e1 = new EnlaceVisual(2, n1, n2);
            var e2 = new EnlaceVisual(7, n2, n3);
            var e3 = new EnlaceVisual(3, n1, n3);
            var e4 = new EnlaceVisual(20, n1, n6);
            var e5 = new EnlaceVisual(5, n3, n6);
            var e6 = new EnlaceVisual(9, n1, n5);
            var e7 = new EnlaceVisual(3, n5, n4);

            g.AgregarEnlace(e1);
            g.AgregarEnlace(e2);
            g.AgregarEnlace(e3);
            g.AgregarEnlace(e4);
            g.AgregarEnlace(e5);
            g.AgregarEnlace(e6);
            g.AgregarEnlace(e7);

            this.enlaces.Add(e1);
            this.enlaces.Add(e2);
            this.enlaces.Add(e3);
            this.enlaces.Add(e4);
            this.enlaces.Add(e5);
            this.enlaces.Add(e6);
            this.enlaces.Add(e7);

            this.Dibujar();
        }
Пример #22
0
 private void Form1_MouseDown(object sender, MouseEventArgs e) //evento: movimiento; genera un cuadrado alrededor del circulo que al tocarlo simula la seleccion del nodo
 {
     foreach (NodoVisual n in this.nodos)
     {
         if ((n.Center.X <= e.X) && (n.Center.X + 30 >= e.X) && (n.Center.Y <= e.Y) && (n.Center.Y + 30 >= e.Y))
         {
             this.seleccionado = n;
            
         }
     }
 }