Rules

Selbstdefinierte Rules sind der Schlüssel für komplexe und anspruchsvolle Strukturen. Rules werden mittels dem Schlüsselwort rule definiert. Eigene Rules können dann wie die vordefiniert Rules aufgerufen werden.

Ein Beispiel:

MyRule

rule MyRule {
  { x 0.9 rz 6 ry 6 s 0.99 sat 0.6 } MyRule
  { s 2 } grid
}

Erzeugt folgende Struktur:

 

Schauen wir uns die einzelnen Code Elemente an:

 

MyRule

Hier wird unsere Rule aufgerufen.

 

rule MyRule

Hier definieren wir den Namen unserer Rule.

 

{ x 0.9 rz 6 ry 6 s 0.99 sat 0.6 } MyRule 

Hier werden verschieden Transformationen angewendet (Position auf X-Achse, Rotation auf Z- und Y-Achse, Farbton).

Zu beachten ist der Befehl s, aber vorher kurz noch der Rule Aufruf MyRule am Schluss. Hier wird unsere Rule rekursiv aufgerufen. Die Rekursionstiefe ist defaultmäßig auf 1000 Rekursionen eingestellt. Mit dem Befehl set maxdepth kann die Rekursionstiefe auch selber eingestellt werden.

 

Der Befehl s welcher das Koordinatensystem (X,Y,Z) um den Faktor 0.99 verkleinert, bewirkt am Ende (durch die Rekursion) die Spiralform unserer Struktur.

 

Zufällige Variation

Um etwas Variation in unsere Struktur zu bringen, können wir unsere Rule mehrfach definieren. Structure Synth wählt dann beim Aufruf zufällig eine Defintion unserer Rule aus.

Beispiel:

MyRule

rule MyRule {
{ x 0.9 rz 6 ry 6 s 0.99 h 0.6 } MyRule
{ s 2 } grid
}

rule MyRule {
{ x 1.8 rz 9 ry -9 s 0.99 h 0.6 } MyRule
{ s 2 } sphere
}

Wie man sieht sind bei der zweiten Definition unserer Rule MyRule die Transformationen auf der X-Achse, Rotation auf der Z- und Y-Achse verändert. Weiters wird anstatt einem grid eine sphere gezeichnet.

Hier das Ergebnis: