예제 #1
0
        public void AgregaArista(Graphics g, Vertice v1, Vertice v2, int idV)
        {
            try
            {
                Arista a1 = new Arista(v2, idV);                //v1 ------>  v2
                Arista a2 = new Arista(v1, idV);                //v2 ------>  v1

                Console.WriteLine(vertices[v1.ID].Aristas.Count);
                Console.WriteLine(vertices[v2.ID].Aristas.Count);

                vertices[v1.ID].Aristas.Add(a1);
                vertices[v2.ID].Aristas.Add(a2);

                a1.DibujaArista(g, v1, v2);
            }catch (Exception ex)
            {
                Console.WriteLine("No se puede");
            }
        }
예제 #2
0
        public void VerticesD()
        {
            string a, b;
            int    c = 0;

            a = Interaction.InputBox("Vertice inicial: ", "Arista dirigida", "0", 100, 50);
            b = Interaction.InputBox("Vertice final: ", "Arista dirigida", "0", 100, 50);
            try
            {
                auxv1 = Convert.ToInt32(a);
                auxv2 = Convert.ToInt32(b);
            }
            catch (Exception e) { }
            foreach (Vertice v in grafo.Vertices)
            {
                tipo = 2;
                if (auxv1 != auxv2 && (v.ID + 1) == auxv1 && c == 0)
                {
                    v1 = v;
                    v1.Seleccionar(lienzo);
                    c = 1;
                    Console.WriteLine("entre ejejejeje");
                }
            }
            foreach (Vertice v in grafo.Vertices)
            {
                if (auxv1 != auxv2 && (v.ID + 1) == auxv2 && c == 1)
                {
                    v2 = v;
                    v2.Seleccionar(lienzo);
                    grafo.AgregarAristaDir(lienzo, v1, v2);
                    up2Date = false;
                    toque   = 0;
                    Console.WriteLine("entre 2 ejejejeje");
                }
            }
            if (auxv1 == auxv2)
            {
                MessageBox.Show("No pueden ser iguales");
            }
            Console.WriteLine(grafo.Aristas.Count);
        }
예제 #3
0
        public void AgregaVertice(Graphics g, int x, int y, int width, int height)
        {
            bool    banColision = false;
            Vertice v           = new Vertice(idv, x, y);

            foreach (Vertice ver in vertices)
            {
                banColision = x - v.Radio <= ver.X + ver.Radio && x + v.Radio >= ver.X - ver.Radio && y - v.Radio <= ver.Y + ver.Radio && y + v.Radio >= ver.Y - ver.Radio;
                if (banColision)
                {
                    return;
                }
            }



            if (!banColision && v.ChecarLimites(x, y, width, height))
            {
                idv++;
                vertices.Add(v);
                v.Dibujar(g);
            }
        }
예제 #4
0
파일: Arista.cs 프로젝트: tiffcortez/pv
        public void DibujaArista(Graphics g, Vertice v1, Vertice v2)
        {
            Pen pablo = new Pen(Color.Black);

            g.DrawLine(pablo, v1.X, v1.Y, v2.X, v2.Y);
        }
예제 #5
0
파일: Arista.cs 프로젝트: tiffcortez/pv
 public Arista(Vertice v, int i)
 {
     final = v;
     id    = i;
 }
예제 #6
0
 public bool ChecarVertice(Vertice v)
 {
     return((v.ID == idv1) || (v.ID == idv2));
 }