1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace Fraktal { public partial class Form1 : Form { private List<Dreieck> dreiecke = new List<Dreieck> {}; private List<List<Dreieck>> letzteDreiecke = new List<List<Dreieck>> { };
Dreieck erstesDreieck = new Dreieck(new Point(50, 10), new Point(550, 10), new Point(300, 500)); public Form1() { InitializeComponent(); dreiecke.Add(erstesDreieck); letzteDreiecke.Add(dreiecke); } private void manageDreiecke() { List<Dreieck> neueDreiecke = new List<Dreieck> { }; foreach (Dreieck dreieck in dreiecke) { dreieck.Cut(); neueDreiecke.Add(dreieck.dreieck1); neueDreiecke.Add(dreieck.dreieck2); neueDreiecke.Add(dreieck.dreieck3); }
dreiecke = neueDreiecke; this.Refresh(); }
private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.FillPolygon(new SolidBrush(Color.Black),new Point[]{erstesDreieck.A,erstesDreieck.B,erstesDreieck.C});
Brush brush = new SolidBrush(Color.White); foreach (Dreieck dreieck in dreiecke) { Point[] points =new Point[3] { dreieck.A, dreieck.B, dreieck.C};
e.Graphics.FillPolygon(brush, points, System.Drawing.Drawing2D.FillMode.Winding); } }
private void button1_Click(object sender, EventArgs e) { letzteDreiecke.Add(dreiecke); manageDreiecke(); }
private void button2_Click(object sender, EventArgs e) { dreiecke = letzteDreiecke[letzteDreiecke.Count-1]; dreiecke.RemoveAt(letzteDreiecke.Count - 1); this.Refresh(); } }
} |