private void Rekursionen_MouseDown(object sender, MouseEventArgs e) { if (m_tbhohe.Text.Length > 0 && m_tbbreite.Text.Length > 0) { lange = int.Parse(m_tbhohe.Text); breite = int.Parse(m_tbbreite.Text); } m_mitte = new Point(e.X, e.Y); m_graph.DrawLine(m_rec, m_mitte.X - 2, m_mitte.Y - 2, m_mitte.X + 2, m_mitte.Y + 2); m_graph.DrawLine(m_rec, m_mitte.X - 2, m_mitte.Y + 2, m_mitte.X + 2, m_mitte.Y - 2); Muster(m_mitte, lange, breite); } private void Muster(Point p, int a, int b) { m_graph.DrawRectangle(m_rec, p.X - a/2, p.Y - b/2 , a, b); Point mittelinks = new Point(p.X - a / 2, p.Y); Point mitterechts = new Point(p.X + a / 2, p.Y); m_graph.DrawEllipse(m_pell, mittelinks.X - a / 4, mittelinks.Y - a / 4, a / 2, a / 2); m_graph.DrawEllipse(m_pell, mitterechts.X - a / 4, mitterechts.Y - a / 4, a / 2, a / 2); m_graph.FillEllipse(m_bell, mittelinks.X - a / 4, mittelinks.Y - a / 4, a / 2, a / 2); m_graph.FillEllipse(m_bell, mitterechts.X - a / 4, mitterechts.Y - a / 4, a / 2, a / 2); if (b >= 10 || a >= 10) { Thread.Sleep(100); Muster(mittelinks, a /2, b/2); Muster(mitterechts, a/2, b/2); } }