The K Desktop Environment



Nächste Vorherige Inhalt

8. Werkzeuge

8.1 Rekursivbaum

Mit diesem Werkzeug können rekursive Strukturen erzeugt werden, wie z.B. Bäume.
 
In der Maske sind zwei Eingabefelder, die rekursive Funktion und die Tiefe der zu erzeugenden Struktur. 

Dabei erinnert das System an ein 3-dimensionales Turtle-System.
 

Beispiel:
 

set(s,{depth = 4:5;ELSE:ss}), set(ss,s * 0.71), set(r,s / (PI * 4)), cyl(r,r,s,0,deg(90),0,s / 2,0,0), go(s), turn(deg(80 + drand() * 4 - 2),deg(-25 + drand() * 4 - 2),deg(-20 + drand() * 4 - 2)), f(), turn(deg(10 + rand() * 4 - 2),deg(45 + drand() * 4 - 2),deg(50 + drand() * 4 - 2)), f()
set() setzt eine Variable auf einen Wert set([Varialbenname],[Ausdruck])
go() geht um die angegebene Länge nach vorn (Y-Richtung) go([Ausdruck])
go() geht um den angegebene Vektor nach vorn go([Ausdruck],[Ausdruck],[Ausdruck])
turn() dreht (den Turtle) um die angegebenen Winkel turn([Ausdruck],[Ausdruck],[Ausdruck])
f() ist der rekursive Aufruf der Funktion f()
cyl() erzeugt einen Zylinder cyl(9 * [Ausdruck])
box() erzeugt einen Quader box(9 * [Ausdruck])
sphere() erzeugt eine Kugel sphere(9 * [Ausdruck])
cone() erzeugt einen Kegel cone(10 * [Ausdruck])
object() erzeugt eines der oben genannten Objekte object([Typ],10 * [Ausdruck])

 

Die Objekte werden mit Breite, Höhe, Tiefe, Drehung X, Drehung Y, Drehung Z, Verschiebung X, Verschiebung Y, Verschiebung Z erzeugt. Zusätzlich kann für den Kegel noch der Radius angegeben werden.

[Ausdruck] ist ein beliebiger numerischer Ausdruck für 'evaluate'

[Typ] ist ein [Ausdruck], welcher die Nummer des Objektes angibt:


0 : Kein Objekt
1 : Kugel
2 : Zylinder
3 : Kegel
4 : Quader


Alle nachfolgenden Parameter sind equivalent zu den entsprechenden Parametern der Objekte.
 

Erläuterung des Beispiels:

Es beginnt mit der Initialisierung der drei benutzten Variablen s, ss und r. s wird auf 4 gesetzt, wenn die Ebene (depth) gleich 4 ist, sonst auf ss. Die Ebene ist die aktuelle Rekursionstiefe. Diese beginnt hier im Beispiel mit 4. ss ist s * 0.71 und r ist s / (PI * 4). Dann wird ein Zylinder mit Breite und Höhe r, Tiefe s erzeugt, der 90° um die Y-Achse gedreht und auf der X-Achse um s / 2 verschoben ist. Danach geht das System um s in Y-Richtung, wird etwas zufällig gedreht. Jetzt folgt der 1. rekursive Aufruf, wieder eine Drehung und schließlich der 2. rekursive Aufruf. Bei jedem Wechsel in die nächste Ebene durch einen rekursiven Aufruf, wird die Variable depth oder auch d um 1 erniedrigt. Bei Tiefe 0 wird die Rekursion abgebrochen.
 
 
 
 
 

Dortmund, 22.9.1999

Nächste Vorherige Inhalt