
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
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: