//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) { col = grafo;// 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); grafo.FillEllipse(encuentro, rect); 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); } if (Derecho != null) { Derecho.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, encuentro); } }
//Función para dibujar árbol binario public void DibujarArbol(Graphics grafo, Font fuente, Brush Relleno, Brush RellenoFuente, Pen Lapiz, Brush encuentro) { 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); }