Rekursiven Baum programmieren
-
Hi ihr,
Habe folgende Seite im Netz gefunden:
http://www.gk-informatik.de/sdhp/recugra.html
Ich fand das, was da so stand recht interessant und es ist mein Wunsch so etwas in C++ mit den Funktionen LineTo etc nach zu programmieren.
Habe damit auch angefangen aber irgendwie habe ich wenn ich jetzt mal ehrlich bin überhaupt keine Ahnung, wie das gehen soll.
Schon klar: Mit rekursiven Funktionen.Aber man kann ja hier schließlich vergessen, die Funktion einfach hintereinander abzurufen und einfach die Parameter zu ändern.
Hier zweigt sich jeder Zweig wieder ab und wieder und wieder.Hat jemand vielleicht einen Tip für mich oder ist die Programmierung eines solchen Baums ohnehin zu schwer?
cya
David
-
Aber man kann ja hier schließlich vergessen, die Funktion einfach hintereinander abzurufen und einfach die Parameter zu ändern.
Das sollte nicht so schwer sein, aber du hast, glaube ich, das Prinzip der rekursiven Funktionen nicht ganz verstanden, oder?
-
Naja- wollen wir es mal so ausdrücken: Ich bin es im Moment noch am lernen.
Das was ich bisher verstanden habe ist einfach, dass eine rekursive Funktion sich selbst aufruft.
Und halt die übergebenen Parameter bei jedem Aufruf geändert werden.
Das darf natürlich nicht unendlich so weiter gehen, weil sonst der PC abschmiert.
Also muss man irgendwo ne if-Anweisung drin haben.Gibts da noch mehr zu verstehn?
cya
David
-
Nö, dann müsstest du das doch umsetzten können
-
Okay... also ich geb ja zu, dass ich meine Frage vielleicht nicht ganz prezäsioniert gestellt habe.
Und zwar ist mein Problem der Ablauf der Zeichnungen.
Ich male erst ein Quadrat.
Darauf setze ich ein Dreieck.Nun muss ich entscheiden ob ich das nächste 'Häuschen' nach rechts oder links zuerst setzte.
Ich entscheide mich für rechts.
Nun habe ich das selbe Problem in Grün.
Und dann in Gelb und dann in Blau^^Ich denke ihr versteht mein Problem... ich weiß nicht, in welcher reihenfolge ich welche Häuser setzten soll.
cya
David
-
Ich versteh nicht genau was du meinst... Aber so etwa:
function zeichneHäuschen( x, y, ... ) { if( längefür( x, y ) < 2 ) return; // male ein häuschen von x, y, ... line( x, y, bla, blub ) line( x, y, rofl, lol ) zeichneHäuschen( x + links, y + hoch, ... ) # male links ein haus zeichneHäuschen( x + rechts, y + hoch, ... ) # male rechts ein haus }
-
Mhh... irgendwo erscheint mir dein Lösungsweg logisch - sogar sehr logisch.
Meine Güte- da hätte ich auch selbst drauf kommen können