//Submenu Planaridad private void porCorolariosToolStripMenuItem_Click(object sender, EventArgs e) { if (grafos != null && grafos.Count != 0) { if (grafo_activo != null && grafo_activo.getNumeroVertices() >= 2 && grafo_activo.getNumeroAristas() != 0) { string cad = "\n\n "; if (grafo_activo.esPlanoPorCorolarios(ref cad)) { MessageBox.Show("\n El Grafo " + grafo_activo.getId().ToString() + " es PLANO. " + cad, " Planaridad por corolarios", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("\n El Grafo " + grafo_activo.getId().ToString() + " NO es PLANO. " + cad, " Planaridad por corolarios", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
public void aplicaArbolAbarcador(int tipo_grafo, bool ramp) { Graphics g = Graphics.FromImage(G.getBMP()); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; clasificaArcos(ramp); foreach (CArista a in arcos_retroceso) { a.dibujateRP(g, G.getBMP(), tp, 1, G.getTipo()); } foreach (CArista a in arcos_avance) { a.dibujateRP(g, G.getBMP(), tp, 2, G.getTipo()); } foreach (CArista a in arcos_cruzados) { a.dibujateRP(g, G.getBMP(), tp, 3, G.getTipo()); } string cad = "\n\n Arcos de árbol (Azul)\n Arcos de retroceso (Rojo)\n Arcos de Avance (Celeste)\n Arcos Cruzados (Verde)"; string cad2 = "\n\n Arcos de árbol (Azul)\n Arcos de Retroceso (Rojo)\n"; string cad3 = "\n\n Arcos de árbol (Azul)\n Arcos de Cruzados (Verde)\n"; if (tipo_grafo == DIRIGIDO) { if (arcos_retroceso.Count == 0) { MessageBox.Show(" El Grafo " + G.getId().ToString() + " es un GDA. " + cad, "Recorrido en profundidad", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(" El Grafo " + G.getId().ToString() + " NO es un GDA ya que tiene arcos de retroceso (Color Rojo). " + cad, "Recorrido en profundidad", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { if (!ramp) { MessageBox.Show(" Resultado para el Grafo " + G.getId().ToString() + cad2, "Recorrido en profundidad (Grafo NO Dirigido)", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(" Resultado para el Grafo " + G.getId().ToString() + ". " + cad3, "Recorrido en amplitud", MessageBoxButtons.OK, MessageBoxIcon.Information); } } g.Clear(Color.White); G.dibujate(tp, G.getBMP()); }
public void coloreoDeGrafoNColores(TabPage tp) { if (hayNodoSinPintar() && !band2) { CVertice vert_mge = getNodoDeMayorGradoDeErrorSinPintar(); if (vert_mge != null) { int color = -1; if (hayColorDisponibeNColores(vert_mge, ref color) && color != -1) { pintaNodo4Colores(vert_mge, color); coloreoDeGrafoNColores(tp); } else { band2 = true; MessageBox.Show("\n El Grafo " + G.getId().ToString() + " ha sobrepasado el limite de colores disponible (10)...", "Número cromatico arbitrario!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } }