_LaVieJenniInfo
Junior Dabei seit: 09.01.2021 Mitteilungen: 19
Themenstart: 2021-01-15
Unsere Aufgabe ist den Pythagorastree zu programmieren, dabei sollen wir beachten, dass der Winkel in der linken Ecke immer zufällig gewählt wird. Der muss zwischen 30 und 60 Grad liegen und je tiefer das ganze desto kleiner wird alles am Ende, sodass es halt alles am Ende wie ein baum aussieht.
Ich sitze wirklich seit zwei Tagen an dieser Aufgabe und ich weiß wirklich nicht weiter. Ich weiß wie man die Länge der Seiten berechnet, ich kriege es auch erstmal hin, das Quadrat und darauf ein beliebiges Dreieck zu zeichnen mit einem Zufallswinkel, die Quadrate kriege ich auch hin, die darauf zu zeichnen.
Aber was ich nicht hinkriege ist, wenn die Funktion wieder aufgerufen wird, dass dann von dem bereits gezeichneten Quadrat das weiter rekursiv zu zeichnen.
Triceratops
Aktiv Dabei seit: 28.04.2016 Mitteilungen: 5461
Herkunft: Berlin
Beitrag No.1, eingetragen 2021-01-15
Die Idee ist im Prinzip, der rekursiven Funktion die richtigen Parameter zu geben, zum Beispiel die beiden Ausgangspunkte, oder alternativ ein Ausgangspunkt, Länge, Rotationswinkel. Wenn du die Funktion dann zum ersten mal aufrufst, legst du sinnvolle Anfangswerte fest. Beim rekursiven Aufruf setzt du dann natürlich die neu berechneten Parameter ein.
Pseudocode
zeichneBaum(A,B,tiefe):
berechne die beiden eckpunkte C,D des quadrats ABCD
berechne zufälligen winkel a
berechne eckpunkt E des dreiecks mit winkel a
zeichne quadrat und dreieck
wenn tiefe < 0, fertig
zeichneBaum(C,E, tiefe-1)
zeichneBaum(C,B, tiefe-1)
viertel
Senior Dabei seit: 04.03.2003 Mitteilungen: 27758
Herkunft: Hessen
Beitrag No.4, eingetragen 2021-01-15
Dann kann ich ja hier noch ein hübsches Bild zur Verfügung stellen: einen solchen Baum in 3D.
Das sind keine zwei identischen Bilder, sondern ein Stereobild.