In meinem Code gehe ich davon aus, dass die Höhe und die Breite der Rechtecke durch die Konstanten
RECT_HEIGHT und
RECT_WIDTH gegeben ist.
Y ist die Y-Koordinate, die der Prozedur übergeben wird, damit sie weiß, in welche Höhe sie die Rechtecke zeichnen soll. Initialisiert und gesteuert wird
Y von der äußeren
For Y := 10 to (ZEILEN_ANZAHL * RECT_HEIGHT + 10) step RECT_HEIGHT do
-Schleife.
X ist dann die Variable, die mir innerhalb der Prozedur sagt, wo
ZeichneRechteck das Rechteck hinzeichnen soll. Außerhalb der Prozedur ist das absolut unwichtig, das wir die Pyramide ja zentrieren. (
Wuppdi!)
Mit Mathematik machst du mir Angst. Ich finde es sinnvoller, sich zu überlegen, wie man eine Zeile von beliebig vielen Rechtecken zentriert.
MfG,
hanselmansel
€dit: Ich merke gerade, dass Delphi das Step-Statement nicht kennt. Formulieren wir also um:
Delphi-Quellcode:
Var
line :integer;
For line := 0 to ZEILEN_ANZAHL do
Begin
Y := 10 + RECT_HEIGHT * line;
ZeichneMultiRect(line, Y);
End;
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.