Beispiel #1
0
 public void UpdateImage()   //Aktualisiert das angezeigte Bild
 {
     b = new Bitmap(Convert.ToInt32(Math.Pow(2, my_Baum.GetDeep()) * 50 - 50), my_Baum.GetDeep() * 50);
     //Breite: 2^Tiefe * x; Höhe: Tiefe * x
     //Grund für so große Breite: Abstand von Ästen in tiefster Verzweigung unabhängig von Tiefe
     //Vorteil: alles in jeder Situation gut lesbar
     //Nachteil: extreme Platzverschwendung, da Platz nur bei Ausgeglichenen Bäumen benötigt
     g = Graphics.FromImage(b);
     g.FillRectangle(new SolidBrush(Color.LightGray), new Rectangle(0, 0, b.Width, b.Height));
     foreach (PunktTextComboAlsTupelErsatz p in GetPoints(my_Baum, g))
     {
         //An allen Knoten Punkt und deren Wert zeichnen
         g.FillEllipse(new SolidBrush(Color.Red), new Rectangle(p.Point.X - 20, p.Point.Y - 25 - 20, 40, 40));
         g.DrawString(p.Text, new Font("Impact", 20), new SolidBrush(Color.Black), new Point(p.Point.X, p.Point.Y - 25), new StringFormat {
             LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Center
         });
     }
     if (t != null)
     {
         t.SetImage(b);              //Bild aktualisieren
     }
 }
Beispiel #2
0
 private void resetdeep(string text)
 {
     lb_deep.Text = "Tiefe: " + my_tree.GetDeep().ToString();
     rTB_out.Text = text;
 }