XL – Wiki

 

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

abgeleitete Relationen

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.

sum query

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

box

Cone

Kegelförmiges Objekt

cone

Frustum

Kegelstumpf mit runder Grundfläche

frustum

Sphere

Kugelförmiges Objekt

sphere

Cylinder

Zylindrisches Objekt

cylinder

Parallelogramm

Parallelogrammförmiges Objekt

parallelogramm

Supershape

Supershape Objekt, Klasse von mathematisch definierten Oberflächen als geometrische Primitivobjekte

supershape

NURBSSurface

Non-uniform rational B-Splines (NURBS) sind mathematisch definierte Kurven oder Flächen, mit denen man beliebige Formen definieren kann.

nurbssurface

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.

Welcome to the website grogra.de. This site is the web centre of growth grammars of the Department Ecoinformatics, Biometrics and Forest Growth at the Georg-August University of Göttingen and its cooperation partners.