コード例 #1
0
        private void Kuratowski_Paint(object sender, PaintEventArgs e)
        {
            Graphics gAux = CreateGraphics();

            gAux = Graphics.FromImage(bmp);
            gAux.Clear(this.BackColor);
            if (bandFinal)
            {
                switch (opcion)
                {
                case 1:    // Nodo
                    gAux.FillEllipse(this.brushRelleno, pe.X, pe.Y, tamNodo, tamNodo);
                    gAux.DrawEllipse(this.penNodo, pe.X + (anchoLineaN / 2), pe.Y + (anchoLineaN / 2),
                                     tamNodo - (anchoLineaN / 2), tamNodo - (anchoLineaN / 2));
                    gAux.DrawString(this.nombre.ToString(), font, brushName, pe.X + (tamNodo / 2) - tamName, pe.Y + (tamNodo / 2) - tamName);
                    numNodos++;
                    this.nombre = ConvierteNombre(numNodos);
                    if (bandNombre)
                    {
                        grafo.CambiaNombre();
                        gAux.Clear(BackColor);
                        grafo.DibujaGrafo(gAux);
                        bandNombre = false;
                    }
                    this.grafo.actualizaId();
                    bandFinal = false;
                    break;
                }
            }
            grafo.DibujaGrafo(gAux);
            g.DrawImage(bmp, 0, 0);
        }
コード例 #2
0
        private void GrafoSecundario_Paint(object sender, PaintEventArgs e)
        {
            Graphics gAux = CreateGraphics();

            gAux = Graphics.FromImage(bmp);
            gAux.Clear(this.BackColor);
            if (band)
            {
                Pen p = new Pen(Color.GreenYellow, penArista.Width + 1);
                switch (opcion)
                {
                case 2:    //AristaNoDirigida
                    pI1 = MetodosAuxiliares.PuntoInterseccion(p1, p2, tamNodo / 2);
                    gAux.DrawLine(p, pI1, p2);
                    break;

                case 7:    //AristaDirigida
                    p.CustomEndCap = new AdjustableArrowCap(5, 5);
                    pI1            = MetodosAuxiliares.PuntoInterseccion(p1, p2, tamNodo / 2);
                    gAux.DrawLine(p, pI1, p2);
                    break;
                }
            }
            else
            {
                //BanderaFinal
                if (bandFinal)
                {
                    switch (opcion)
                    {
                    case 1:    // Nodo
                        gAux.FillEllipse(this.brushRelleno, pe.X, pe.Y, tamNodo, tamNodo);
                        gAux.DrawEllipse(this.penNodo, pe.X + (anchoLineaN / 2), pe.Y + (anchoLineaN / 2),
                                         tamNodo - (anchoLineaN / 2), tamNodo - (anchoLineaN / 2));
                        gAux.DrawString(this.nombre.ToString(), font, brushName, pe.X + (tamNodo / 2) - tamName, pe.Y + (tamNodo / 2) - tamName);
                        numNodos++;
                        this.nombre = ConvierteNombre(numNodos);
                        if (bandNombre)
                        {
                            grafo.CambiaNombre();
                            gAux.Clear(BackColor);
                            grafo.DibujaGrafo(gAux);
                            bandNombre = false;
                        }
                        bandFinal = false;
                        break;

                    case 2:    //AristaNoDirigida
                        gAux.DrawLine(penArista, pI1, pI2);
                        bandFinal = false;
                        break;

                    case 7:    //AristaDirigida
                        gAux.DrawLine(penArista, pI1, pI2);
                        bandFinal = false;
                        break;
                    }
                }
            }
            grafo.DibujaGrafo(gAux);
            g.DrawImage(bmp, 0, 0);
        }