/// <summary> /// Erzeugt eine neue Beschreibung. /// </summary> /// <param name="fläche">Die tatsächliche Position des Elementes.</param> /// <param name="horizontaleVerschiebung">Die Verschiebung in horizontale Richtung.</param> /// <param name="vertikaleVerschiebung">Die Verschiebung in vertikale Richtung.</param> private ElementInBewegung( Fläche fläche, GenaueZahl horizontaleVerschiebung, GenaueZahl vertikaleVerschiebung ) { // Alles merken HorizontaleVerschiebung = horizontaleVerschiebung; VertikaleVerschiebung = vertikaleVerschiebung; Fläche = fläche; // Breite und Höhe des Bewegungspfads ermitteln var breite = Fläche.Bereich.Breite + HorizontaleVerschiebung.Abs(); var höhe = Fläche.Bereich.Höhe + VertikaleVerschiebung.Abs(); // Ursprung bestimmen var links = Fläche.Bereich.KleinsteHorizontalePosition; var unten = Fläche.Bereich.KleinsteVertikalePosition; // Je nach Orientierung korrigieren if (HorizontaleVerschiebung < GenaueZahl.Null) links += HorizontaleVerschiebung; if (VertikaleVerschiebung < GenaueZahl.Null) unten += VertikaleVerschiebung; // Gesamtumfang ermitteln GesamterBereich = Bereich.Erzeugen( links, unten, breite, höhe ); }