Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Rechtecke Rekursiv zeichnen.
juge - Mo 02.05.05 19:36
Titel: Rechtecke Rekursiv zeichnen.
Hi
Ich soll für die Schule ein Programm entwickeln welches Rechtecke in eine Paintbox zeichnet.
Das ganze soll nach einem Button Click wie folgt aussehen:
http://img79.echo.cx/my.php?image=programmrekursiv6eh.png
Die Kntenlänge der PaintBox soll 500 Pixel betragen. Die Kantenlänge des größten Rechteckes 250, die der nächsten vier 125 usw.. Halt immer die Kantenlänge ganzzahlig durch 2 um auf die des nächsten zu kommen. Eine Mindest-Kantenlänge(1-250) soll zusätzlich vom Benutzer eingegeben werden können. Die Eckpunckte der Rechtecke sind die Mittelpunckte der Rechtecke die direkt dahinter liegen. Das ganze soll Rekursiv gelösst werden.
Ich grübbel jetzt seit 4 Tagen an einer Formel für dieses Problem. Aber mir gelingt einfach nichts Vernünftiges. Ihr seid meine letzte Hoffnung :wink:
Bitte Helft Mir!
grüsse
juge
Moderiert von
raziel: img- durch url-Tags ersetzt
F34r0fTh3D4rk - Mo 02.05.05 19:42
es gibt doch auch dieses dingels mit den 3 dreiecken die aus 3 dreiecken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, die aus 3 dreicken bestehen, naja und so weiter eben :D
delfiphan - Mo 02.05.05 19:54
Hallo und :welcome: im DF!
F34r0fTh3D4rk: Das Sierpinski-Dreieck kannst du mit (x and y <> 0) oder so ähnlich zeichnen. Das Dreieck wird also üblicherweise anders berechnet (nicht per Rekursion).
juge: Wie können wir dir jetzt helfen? Erwartest du von uns die Komplettlösung? Es handelt sich ja nur um wenige Zeilen... Ich machs mal so: Hier einfach mal ein Code-Gerüst, welches du vervollständigen kannst. Ich will dir ja nicht deine Hausaufgaben komplett lösen! Wenn du es richtig vervollständigst, erhältst du pixelgetreu das Originalbild. :)
Delphi-Quelltext
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:
| type SquarePosition = (spRoot, spUpperLeft, spUpperRight, spLowerLeft, spLowerRight);
procedure RecursiveRect(Canvas: TCanvas; CX, CY, Size: Integer; Position: SquarePosition); begin with Canvas do begin if ... then begin if Position <> spLowerRight then RecursiveRect(Canvas, ...); if Position <> spLowerLeft then RecursiveRect(Canvas, ...); if Position <> spUpperRight then RecursiveRect(Canvas, ...); if Position <> spUpperLeft then RecursiveRect(Canvas, ...); end; Rectangle(CX-Size div 2,CY-Size div 2,CX+Size div 2,CY+Size div 2); end; end;
procedure TForm1.Button1Click(Sender: TObject); begin with PaintBox1 do RecursiveRect(Canvas, Width div 2, Height div 2, Width div 2, spRoot); end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!