Wiki zur Programmiersprache XL
Kanten-Spezifikationen
Standard-Kantentypen
successor
Nachfolgerrelation: Verlängerung eines Triebes auf derselben Achse wie der Vorgänger
branch
Verzweigungsrelation: Verzweigung des Triebes auf einer neuen Achse
refinement
Verfeinerungsrelation: Verbindung zu Teilobjekten
abgeleitete Relationen
ancestor
Nächster Vorgängerknoten, der einen gegebenen Knotentyp hat. Diese Relation besteht zu allen Vorgängerknoten in einem Baum entlang des Pfades zur Wurzel.
descendants
alle Nachfolger, die einen gegebenen Knotentyp haben
minDescendants
nächste Nachfolger, die einen gegebenen Knotentyp haben
transitive Hülle
Relation zwischen Knoten, die durch mehrere Kanten desselben Typs (hintereinander) verbunden sind
Konstanten
Farbspezifikationen
P(EGA_10)
Farbauswahl mittels Farbcode (lang)
P(10)
Farbauswahl mittels Farbcode (kurz)
P(Green)
Farbauswahl mittels Farbwort (englisch)
P(LIGHT_GRAY)
Farbauswahl mittels Farbwort (englisch), Trennung von Intensität und Wort mittels “_”
P(0x00FF00)
Farbauswahl mittels hexadezimaler Farbdefinition
EGA_0
schwarz
EGA_1
blau
EGA_2
grün
EGA_3
cyan
EGA_4
rot
EGA_5
magenta
EGA_6
braun
EGA_7
hellgrau
EGA_8
dunkelgrau
EGA_9
hellblau
EGA_10
hellgrün
EGA_11
hellcyan
EGA_12
hellrot
EGA_13
hellmagenta
EGA_14
gelb
EGA_15
weiß
Methoden
Aggregationsmethoden
sum
Bildet die Summe ausgewählter Attribute der abgefragten Knoten.
Beispiel: Suche alle Blätter, die Nachfolger des Knotens c sind, und summiere deren Fläche.
mean
Bildet den Mittelwert ausgewählter Attribute der abgefragten Knoten
empty
Auswahl leerer Attribute
forall
Prüft ob Ergebnis für alle Attribute gilt
selectWhereMin
Auswählen des Objekte, bei denen ein Attribut sein Minimum erreicht
selectWhereMax
Auswählen des Objekte, bei denen ein Attribut sein Maximum erreicht
Graph-Manipulationsmethoden
getFirst
Auswahl des ersten Objekts
cloneSubgraph
Erstellt eine Kopie des Untergrafen
Shading-Methoden
setShader
setColor
sonstige Methoden
location
endlocation
distance
cone
derive
isSelected
makeSnapshot
Erstellt einen Schnappschuss, benötigt den String Dateinamen
Bsp: makeSnapshot(“name”)
clearConsole
leeren/ löschen der Konsole
stochastische Methoden
probability
Wahrscheinlichkeit (zwischen 0 und 1)
random
Gleitkomma-Zufallszahl
irandom
Integer, ganzzahlige Zufallszahl
setSeed(n)
Startwert für identische Zufallszahlen
Math.random
Zufallszahlen zwischen 0 und 1
normal(µ, σ)
Normalverteilte Zufallszahlen mit Mittelwert µ und Standardabweichung σ
distribution(v)
Zufallszahlen mit festgelegter Wahrscheinlichkeit. Vektor v liefert ganzzahlige Zufallszahlen mit Wahrscheinlichkeit v[0] für 0, v[1] für 1, …
Regeltypen
Regeltypen
==> (Regel im Lindenmayer-Stil)
==>> (Regel im SPO-Stil)
::> (Aktualisierungsregel)
Instanzierungsregel
Interpretationsregel
Standard-Knotentypen
Geometrieobjekte
Box
Quaderförmiges Objekt
Cone
Kegelförmiges Objekt
Frustum
Kegelstumpf mit runder Grundfläche
Sphere
Kugelförmiges Objekt
Cylinder
Zylindrisches Objekt
Parallelogramm
Parallelogrammförmiges Objekt
Supershape
Supershape Objekt, Klasse von mathematisch definierten Oberflächen als geometrische Primitivobjekte
NURBSSurface
Non-uniform rational B-Splines (NURBS) sind mathematisch definierte Kurven oder Flächen, mit denen man beliebige Formen definieren kann.
Lichtquellen
PointLight
Punktlichtquellen, die von einem Punkt in der Szene in alle Richtungen gleichstark strahlen
DirectionalLight
direktionale Lichtquellen, die gleichmäßig mit parallelen Lichtstrahlen die gesamte Szene beleuchten
SpotLight
Kegellichtquellen, die mit festgelegtem Öffnungswinkel von einem Punkt aus gerichtet einen Teil der Szene beleuchten
Sky
Tageslicht
AmbientLight
Umgebungslicht ist eine nicht-physikalische Lichtquelle, die die gesamte Szene beleuchtet und dabei jeden Punkt gleich stark ausleuchtet.
Turtle-Kommando
F(x)
konstruiere Zylinder mit Länge x
F(x, d)
konstruiere Zylinder mit Länge x und Durchmesser d
F(x, d, c)
konstruiere Zylinder mit Länge x, Durchmesser d und Farbe c
F0
konstruiere Zylinder unter Verwendung der Eigenschaften aus dem Turtle-Zustand
FAdd(x)
konstruiere Zylinder mit der um x vergrößerten Länge aus dem Turtle-Zustand
FMul
konstruiere Zylinder mit der mit x multiplizierten Länge aus dem Turtle-Zustand
M(x)
Verwendung wie F, Bewegung mit Länge x, jedoch ohne Konstruktion eines Zylinders
M0
Bewegung mit default-Länge, jedoch ohne Konstruktion eines Zylinders
MAdd(x)
Bewegung mit der um x vergrößerten Länge aus dem Turtle-Zustand
MMul(x)
Bewegung mit der mit x multiplizierten Länge aus dem Turtle-Zustand
Mrel(q)
Bewegung zur realtiven Position q auf der Achse des zuvor erzeugten F-Zylinders
RU(a)
Drehung um a Grad auf der Up-Achse
RH(a)
Drehung um a Grad auf der Head-Achse
RL(a)
Drehung um a Grad auf der Left-Achse
Plus(a)
Drehung um a Grad um die lokale Up-Achse
Minus(a)
Drehung um -a Grad um die lokale Up-Achse
AdjustLU
Drehung um die lokale Head-Achse, so dass die lokale Up-Achse soweit möglich aufwärts zeigt
RV(e)
Gravitropismus mit Stärke gegeben durch e, Orientierung nach unten
RG(
maximaler Gravitropismus, die lokale Head-Achse zeigt vertikal nach unten
L0
Modifikation der Länge im Turtle-Zustand, setzen auf default-Wert
LMul(x)
Multiplikation der Länge im Turtle-Zustand mit x
LAdd(x)
Vergrößerung der Länge im Turtle-Zustand um x
L(x)
Modifikation der Länge im Turtle-Zustand, setzen auf x
Ll(x)
Modifikation der lokalen Länge im Turtle-Zustand, diese wird nur für das nächste F verwendet
C(x)
Modifikation der Turtle-Zustandsvariablen C-Gehalt
D(x)
Modifikation der Turtle-Zustandsvariablen Durchmesser
H(x)
Modifikation der Turtle-Zustandsvariablen Kernholzdurchmesser
N(x)
Modifikation der Turtle-Zustandsvariablen Blattparameter
U(x)
Modifikation der Turtle-Zustandsvariablen Internodienzahl
V(x)
Modifikation der Turtle-Zustandsvariablen Tropismusstärke
P(c)
Modifikation der Farbe im Turtle-Zustand, setzen auf c
P(0)
Modifikation der Farbe im Turtle-Zustand, setzen auf default-Wert
OR(x)
Setzt die Verzweigungsordnung im Turtle-Zustand auf x
IncScale
erhöht den Skalenzähler des Turtle-Zustands um 1
RD(v, e)
Richtungstropismus in Richtung v mit Stärke e
RO(v, e)
Richtungstropismus in Richtung der Projektion der aktuellen Bewegungsrichtung auf eine zu V senkrechte Ebene mit Stärke e
RP(p, e)
Positionsgesteuerter Tropismus zur Position p mit Stärke e
RN(n, e)
Positionsgesteuerter Tropismus zur Position des Knotens n mit Stärke e
Translate(x, y, z)
Verschiebung um (x, y, z), Angaben in globalen Koordinaten
Rotate(x, y, z)
Rotation um die x-Achse um x Grad, um die y-Achse um y Grad und um die z-Achse um z Grad
Scale(x, y, z)
Skalierung entlang der x-Achse um x Grad usw.
Scale(s)
uniforme Skalierung um s
Axiom
Startobjekt
Was im Axiom definiert wird, ist bei der Initialisierung des Modells sichtbar, z.B. ein bestimmter Hintergrund oder eine Knospe, die wachsen soll.
[
Verzweigungsanfang, Speicherung des aktuellen Zustands
z.B.: F1 [RU(45) F1] F1 -> Die Turtle bewegt sich um einen Schritt vorwärts und zeichnet eine Linie. Die eckige Klammer signalisiert den Beginn einer Verzweigung und speichert den aktuellen Zustand der Turtle ab. Innerhalb der Verzweigung orientiert die Turtle sich neu (45° auf der Up-Achse) und geht in dieser Richtung ebenfalls einen Schritt. Durch die zweite eckige Klammer kehrt die Turtle zum abgespeicherten Zustand zurück. Sie bewegt sich um einen Schritt in der ursprünglichen Orientierung.
]
Verzweigungsende, Rückkehr der Turtle zum gespeicherten Zustand
z.B.: F1 [RU(45) F1] F1 -> Die Turtle bewegt sich um einen Schritt vorwärts und zeichnet eine Linie. Die eckige Klammer signalisiert den Beginn einer Verzweigung und speichert den aktuellen Zustand der Turtle ab. Innerhalb der Verzweigung orientiert die Turtle sich neu (45° auf der Up-Achse) und geht in dieser Richtung ebenfalls einen Schritt. Durch die zweite eckige Klammer kehrt die Turtle zum abgespeicherten Zustand zurück. Sie bewegt sich um einen Schritt in der ursprünglichen Orientierung.