zu www.bildungsgueter.de nächster Abschnitt zur Inhaltsübersicht des Kapitels vorheriger Abschnitt

Graphics: Berechnungen im Rechteck

Herstellung eines quadratischen Rechtecks

Gelegentlich wirst du quadratische Rechtecke benötigen, die ganz in das Anzeigerechteck einer Zeichenebene passen. Die Herstellung eines solchen Rechtecks ist nicht schwer: Du bestimmst die kürzere Seite, stellst ein Exemplar von Size her, das diese kürzere Seite als x-Wert und als y-Wert enthält und erzeugst mit dieser Größenangabe ein neues Rechteck:

int seite;
if (rechteck.Width < rechteck.Height)
{
    seite = rechteck.Width;
}
else
{
    seite = rechteck.Height;
}
Rectangle quadrat = new Rectangle(rechteck.Location,
                                  new Size(seite, seite));

Das kannst du kürzer schreiben, wenn du dich daran erinnerst, dass du in C# auf der rechten Seite einer Wertzuweisung einen bedingten Ausdruck schreiben darfst:

int seite =
   (rechteck.Width < rechteck.Height
        ? rechteck.Width
        : rechteck.Height);

Rectangle quadrat = new Rectangle(rechteck.Location, 
                                  new Size(seite, seite));

Einmitten eines quadratischen Rechtecks

Wenn du ein Quadrat in einem rechteckigen Darstellungsbereich mittig platzieren willst, wird die Aufgabe geringfügig komplizierter, weil nicht nur die Quadratseite, sondern auch die Position des Quadrates berechnen musst. Dabei gehst du vom Quadratmittelpunkt aus und verwendest die halbe Seitenlänge um den Positionierungspunkt zu berechnen. Das geht so:

int hoehe  = rechteck.Height;
int breite = rechteck.Width;
int mittelpunktX = breite / 2;
int mittelpunktY = hoehe  / 2;
int halbseite = (hoehe < breite ? hoehe : breite) / 2;

Rectangle bereich =
      new Rectangle(mittelpunktX - halbseite ,
                    mittelpunktY - halbseite ,
                    2*halbseite,
                    2*halbseite );


vorheriger Abschnitt zur Inhaltsübersicht des Kapitels nächster Abschnitt