public void DibujarNodo(Graphics grafo, Font fuente, Brush Relleno, Brush RellenoFuente, Pen Lapiz, Brush encuentro) { Rectangle rect = new Rectangle((int)(CoordenadaX - Radio / 2), (int)(CoordenadaY - Radio / 2), Radio, Radio); //prueba = new Rectangle((int)(CoordenadaX - Radio / 2), (int)(CoordenadaY - Radio / 2), Radio, Radio); grafo.FillEllipse(encuentro, rect); grafo.FillEllipse(Relleno, rect); grafo.DrawEllipse(Lapiz, rect); StringFormat formato = new StringFormat(); //Dibujar contenido formato.Alignment = StringAlignment.Center; formato.LineAlignment = StringAlignment.Center; grafo.DrawString(info.ToString(), fuente, RellenoFuente, CoordenadaX, CoordenadaY, formato); if (Izquierda != null) { Izquierda.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, encuentro); } if (Derecha != null) { Derecha.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, encuentro); } }
// Función para dibujar el nodo en la posición especificada. public void DibujarNodo(Graphics grafo, Font fuente, Brush Relleno, Brush RellenoFuente, Pen Lapiz, Brush encuentro, int i, int m, int max, int min) { // Dibuja el contorno del nodo Rectangle rect = new Rectangle((int)(CoordenadaX - Radio / 2), (int)(CoordenadaY - Radio / 2), Radio, Radio); Rectangle prueba = new Rectangle((int)(CoordenadaX - Radio / 2), (int)(CoordenadaY - Radio / 2), Radio, Radio); if (max == info) { //MessageBox.Show("max=" + max + " info=" + info); grafo.FillEllipse(Brushes.Green, rect); } else if (min == info) { //MessageBox.Show("min=" + min + " info=" + info); grafo.FillEllipse(Brushes.Orange, rect); } else if (i == info) { //MessageBox.Show("i=" + i + " info=" + info); grafo.FillEllipse(encuentro, rect); } else if (m != 0) { if (info % m == 0) { grafo.FillEllipse(Brushes.Red, rect); suma = suma + info; } else { grafo.FillEllipse(Relleno, rect); } } else { grafo.FillEllipse(Relleno, rect); } grafo.DrawEllipse(Lapiz, rect); // Para dibujar el nombre del nodo, es decir el contenido StringFormat formato = new StringFormat(); formato.Alignment = StringAlignment.Center; formato.LineAlignment = StringAlignment.Center; grafo.DrawString(info.ToString(), fuente, RellenoFuente, CoordenadaX, CoordenadaY, formato); //Dibuja los nodos hijos derecho e izquierdo. if (Izquierdo != null) { Izquierdo.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, encuentro, i, m, max, min); } if (Derecho != null) { Derecho.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, encuentro, i, m, max, min); } }
public void DibujarArbol(Graphics grafo, Font fuente, Brush Relleno, Brush RellenoFuente, Pen Lapiz, Brush encuentro) { int x = 250; int y = 75; if (Raiz == null) { return; } Raiz.PosicionNodo(ref x, y); Raiz.DibujarRamas(grafo, Lapiz); Raiz.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, encuentro); }
//***************************************************************************** // ******** Funciones para el dibujo del Árbol Binario en el Formulario ******* //***************************************************************************** //Funcion para obtener la suma // Función que dibuja el Árbol Binario public void DibujarArbol(Graphics grafo, Font fuente, Brush Relleno, Brush RellenoFuente, Pen Lapiz, Brush encuentro, int i, int m, int max, int min) { int x = 400; // Posiciones de la raíz del árbol int y = 75; if (Raiz == null) { return; } Raiz.PosicionNodo(ref x, y); //Posición de cada nodo Raiz.DibujarRamas(grafo, Lapiz); //Dibuja los Enlaces entre nodos //Dibuja todos los Nodos Raiz.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, encuentro, i, m, max, min); }