예제 #1
0
        private void numericKn(object sender, EventArgs e)
        {
            obtenPropiedades();
            grafo      = new GrafoNoDirigido(grafo);
            grafo.tipo = 2;
            asignaPropiedades();
            grafo.Clear();

            grafo.numN = grafo.Count;
            quitaNumeric();
            quitaTexaux();
            quitaPesos();
            intercambiaColor = false;
            Form1_Paint(this, null);
        }
예제 #2
0
 private void numericWn(object sender, EventArgs e)
 {
     obtenPropiedades();
     grafo      = new GrafoNoDirigido(grafo);
     grafo.tipo = 2;
     asignaPropiedades();
     grafo.Clear();
     grafo.grafoWn((int)numericUpDown3.Value, g);
     grafo.numN = grafo.Count;
     quitaNumeric();
     quitaPesos();
     intercambiaColor     = false;
     agregaPeso.BackColor = Color.Gray;
     Form1_Paint(this, null);
 }
예제 #3
0
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics ga = CreateGraphics();

            ga = Graphics.FromImage(bmp1);
            ga.Clear(BackColor);


            if (bandF || band)
            {
                switch (opcion)
                {
                case 1:
                    ga.FillEllipse(grafo.brushN, p1.X - grafo.radio, p1.Y - grafo.radio, grafo.radio * 2, grafo.radio * 2);
                    ga.DrawEllipse(grafo.penN, p1.X - grafo.radio + (grafo.penN.Width / 2), p1.Y - grafo.radio + (grafo.penN.Width / 2), grafo.radio * 2 - (grafo.penN.Width / 2), grafo.radio * 2 - (grafo.penN.Width / 2));
                    ga.DrawString(nodoP.nombre.ToString(), grafo.font, grafo.brushF, p1.X - 6, p1.Y - 6);
                    break;

                case 2:
                    if (bandF)
                    {
                        if (nodoP.Equals(nodoAux))
                        {
                            ga.DrawBezier(grafo.penA, nodoP.centro.X - 15, nodoP.centro.Y - 15, nodoP.centro.X - 20, nodoP.centro.Y - 60, nodoP.centro.X + 20, nodoP.centro.Y - 60, nodoP.centro.X + 15, nodoP.centro.Y - 15);
                        }
                        else
                        {
                            ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, nodoAux.centro), grafo.BuscaInterseccion(nodoAux.centro, nodoP.centro));
                        }
                    }
                    if (band)
                    {
                        ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, p2), p2);
                    }
                    break;

                case 9:
                    if (bandF)
                    {
                        if (nodoP.Equals(nodoAux))
                        {
                            ga.DrawBezier(grafo.penA, nodoP.centro.X - 15, nodoP.centro.Y - 15, nodoP.centro.X - 20, nodoP.centro.Y - 60, nodoP.centro.X + 20, nodoP.centro.Y - 60, nodoP.centro.X + 15, nodoP.centro.Y - 15);
                        }
                        else
                        {
                            ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, nodoAux.centro), grafo.BuscaInterseccion(nodoAux.centro, nodoP.centro));
                        }
                    }
                    if (band)
                    {
                        ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, p2), p2);
                    }
                    break;
                }
                bandF = false;
            }

            if (bandI)
            {
                ga.Clear(BackColor);
                grafo.ImprimirGrafo(ga, bpar);
                bandI = false;
            }

            if (opcion == 6 || opcion == 7)
            {
                ga.Clear(BackColor);
                grafo.Clear();
                grafo.numN   = 1;
                grafo.edoNom = false;
                if (opcion == 7)
                {
                    grafo = new Grafo();
                }
            }
            if (opcion != 6)
            {
                if (opcion != 7)
                {
                    grafo.ImprimirGrafo(ga, bpar);
                }
            }
            g.DrawImage(bmp1, 0, 0);
        }
예제 #4
0
        private void Panel_Paint(object sender, PaintEventArgs e)
        {
            intercambiaColor = false;
            grafo            = new Grafo();
            opcion           = 0;
            g              = CreateGraphics();
            bmp1           = new Bitmap(ClientSize.Width, ClientSize.Height);
            band           = false;
            bandI          = false;
            bandF          = false;
            bpar           = false;
            arrow          = new AdjustableArrowCap(5, 5);
            timer1.Enabled = false;


            grafoEspecial = false;
            Graphics ga = CreateGraphics();

            ga = Graphics.FromImage(bmp1);
            ga.Clear(BackColor);


            if (bandF || band)
            {
                switch (opcion)
                {
                case 1:
                    ga.FillEllipse(grafo.brushN, p1.X - grafo.radio, p1.Y - grafo.radio, grafo.radio * 2, grafo.radio * 2);
                    ga.DrawEllipse(grafo.penN, p1.X - grafo.radio + (grafo.penN.Width / 2), p1.Y - grafo.radio + (grafo.penN.Width / 2), grafo.radio * 2 - (grafo.penN.Width / 2), grafo.radio * 2 - (grafo.penN.Width / 2));
                    ga.DrawString(nodoP.nombre.ToString(), grafo.font, grafo.brushF, p1.X - 6, p1.Y - 6);
                    break;

                case 2:
                    if (bandF)
                    {
                        if (nodoP.Equals(nodoAux))
                        {
                            ga.DrawBezier(grafo.penA, nodoP.centro.X - 15, nodoP.centro.Y - 15, nodoP.centro.X - 20, nodoP.centro.Y - 60, nodoP.centro.X + 20, nodoP.centro.Y - 60, nodoP.centro.X + 15, nodoP.centro.Y - 15);
                        }
                        else
                        {
                            ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, nodoAux.centro), grafo.BuscaInterseccion(nodoAux.centro, nodoP.centro));
                        }
                    }
                    if (band)
                    {
                        ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, p2), p2);
                    }
                    break;

                case 9:
                    if (bandF)
                    {
                        if (nodoP.Equals(nodoAux))
                        {
                            ga.DrawBezier(grafo.penA, nodoP.centro.X - 15, nodoP.centro.Y - 15, nodoP.centro.X - 20, nodoP.centro.Y - 60, nodoP.centro.X + 20, nodoP.centro.Y - 60, nodoP.centro.X + 15, nodoP.centro.Y - 15);
                        }
                        else
                        {
                            ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, nodoAux.centro), grafo.BuscaInterseccion(nodoAux.centro, nodoP.centro));
                        }
                    }
                    if (band)
                    {
                        ga.DrawLine(grafo.penA, grafo.BuscaInterseccion(nodoP.centro, p2), p2);
                    }
                    break;
                }
                bandF = false;
            }

            if (bandI)
            {
                ga.Clear(BackColor);
                grafo.ImprimirGrafo(ga, bpar);
                bandI = false;
            }

            if (opcion == 6 || opcion == 7)
            {
                ga.Clear(BackColor);
                grafo.Clear();
                grafo.numN   = 1;
                grafo.edoNom = false;
                if (opcion == 7)
                {
                    grafo = new Grafo();
                }
            }
            if (opcion != 6)
            {
                if (opcion != 7)
                {
                    grafo.ImprimirGrafo(ga, bpar);
                }
            }
            g.DrawImage(bmp1, 0, 0);
        }