//Dibuja el nodo de la posicion especificada public void DibujarNodo(Graphics grafo, Font fuente, Brush Relleno, Brush RellenoFuente, Pen Lapiz, int dato, Brush encuentro) { //Dibuja el contorno del nodo Rectangle rect = new Rectangle( (int)(CoordenadaX - Radio / 2), (int)(CoordenadaY - Radio / 2), Radio, Radio); if (valor == dato) { grafo.FillEllipse(encuentro, rect); } else { grafo.FillEllipse(encuentro, rect); grafo.FillEllipse(Relleno, rect); } grafo.DrawEllipse(Lapiz, rect); //Dibuja el valor del nodo StringFormat formato = new StringFormat(); formato.Alignment = StringAlignment.Center; formato.LineAlignment = StringAlignment.Center; grafo.DrawString(valor.ToString(), fuente, Brushes.Black, CoordenadaX, CoordenadaY, formato); //Dibuja los nodos hijos derecho e izq. if (NodoIzquierdo != null) { NodoIzquierdo.DibujarNodo(grafo, fuente, Brushes.YellowGreen, RellenoFuente, Lapiz, dato, encuentro); } if (NodoDerecho != null) { NodoDerecho.DibujarNodo(grafo, fuente, Brushes.Yellow, RellenoFuente, Lapiz, dato, encuentro); } }
public void DibujarArbol(Graphics grafo, Font fuente, Brush Relleno, Brush RellenoFuente, Pen Lapiz, int dato, Brush encuentro) { int x = 100; int y = 75; if (Raiz == null) { return; } //Posicion de todos los nodos Raiz.PosicionNodo(ref x, y); //Dibuja los enlaces entre nodos Raiz.DibujarRamas(grafo, Lapiz); //Dibuja todos los nodos Raiz.DibujarNodo(grafo, fuente, Relleno, RellenoFuente, Lapiz, dato, encuentro); }