Wie macht man einen selbstständigen Baum ?
1 Antwort
def baum(rotation, startpunkt, tiefe):
if tiefe == 0:
return
# -- Ast malen --
# Von Startpunkt zu Endpunkt.
# Die Länge kann man aus Tiefe ableiten (die halbiert sich ja immer), die Richtung aus der Rotation.
# Und daraus kann man die Position des End-Punkts berechnen. Und dann eine Linie dahin ziehen.
baum(rotation-45, endpunkt, tiefe-1)
baum(rotation+45, endpunkt, tiefe-1)
baum(270,(screenWidth/2, screenHeight),7)
Hier hast du die Lösung in JavaScript. Falls du es noch nicht geschafft hast kannst du ja einfach diese Lösung zu Python umschreiben, ist nicht schwer:
Jo
Einfach eine Funktion die sich (zweimal) selbst aufruft, und dabei einen Zähler (Tiefe) übergibt und um 1 erniedrigt).
Und eine Abfrage ob die Tiefe 0 ist (die wird ja bei jedem weiteren Selbst-Aufruf um 1 erniedrigt, und das soll ja nicht unendlich lange so gehen), da dann returnen.
Mehr ist Rekursion nicht.
Das Zeichnen musst du selbst hinriegen :D
Naja, fast.
Das einfachste hat halt noch gefehlt.
- Zeichnen (ka wie du das machst, hast keine Library erwähnt),
- Berechnen des End-Punkts der Linie (aber das steht ja in meiner JavaScript Lösung: cos(Winkel)*Länge = X-Distanz vom Startpunkt. sin(Winkel)*Länge = Y-Distanz vom Startpunkt).
Ich mach doch nich deine Hausaufgaben damit du sie abschreiben kannst, ich will dass du es lernst und verstehst. :D
Womit müsst ihr das denn zeichnen?
Ihr werdet ja wohl irgend eine Bibliothek zum Malen hernehmen
Python ist nur die ProgrammierSprache, zum Zeichnen benutzt man eine Bibliothek. (also eine Sammlung an Vorgefertigen Code (der in dem Fall eine Art Zeichenprogramm enthält))
Vermutlich
- Steht‘s in der Aufgabenstellung
- Habt ihr das schonmal gemacht
Eine Bibliothek erkennst du daran, dass sie im Programs importiert werden muss:
“import <der Name der Bibliothek>“ steht da meist am Anfang des Programms
Benutzt ihr vielleicht turtle?
Hier ist die Dokumentation zur Turtle-Bibliothek: https://docs.python.org/3/library/turtle.html
Da findest du alle Funtionen - z.B. auch, wie du eine Linie zeichnest.
Habe das noch nie benutzt und checke es auf den ersten Blick. Sollte nicht so schwer sein. Ist ja auch für Kinder :D
Ich denke bevor du die Rekursive Funktion aufrufst musst du den Turtle noch unten in die mitte setzen. Das sollte so gehen:
turtle.penup()
turtle.goto(turtle.window_width()/2, 3) # Bewegen zu: X: Mitte des Bildschirms. Y: Ganz unten
turtle.pendown()
Habt ihr Rekursion noch nicht gelernt?
Hast nicht du Rekursion in die Fragethemen geschrieben? xD
Ne hatten noch keine rekursion. Ja das hab ich geschrieben, weil das da vorgegeben war. Sonst wüsste ich auch nicht, dass sowas überhaupt existiert 😅
Rekursion ist einfach eine Funktion, die sich selbst aufruft.
Am besten schaust du dir mal ein paar Erklärungen dazu an
Das war's?😳😅