Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.

Ähnliche Präsentationen


Präsentation zum Thema: "Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik."—  Präsentation transkript:

1 Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 6. Vorlesung:

2 zuletzt: L-System-Beispiele Einbau von Texturen in Pflanzenmodelle Anlegen eines Projekts in GroIMP stochastische L-Systeme

3 als nächstes: kontextsensitive L-Systeme ein neuer Regeltyp: Interpretationsregeln der Graph als grundlegende Datenstruktur: Definition Eigenschaften von Graphen Graph-Ersetzungsregeln

4 Kontextsensitivität Abfrage eines Kontexts, der vorhanden sein muss, damit eine Regel anwendbar ist Angabe des Kontexts in (*.... *) Beispiel: module A(int age); module B(super.length, super.color) extends F(length, 3, color); Axiom ==> A(0); A(t), (t B(10, 2) A(t+1); // 2 = grün A(t), (t == 5) ==> B(10, 4); // 4 = rot B(s, 2) (* B(r, 4) *) ==> B(s, 4); B(s, 4) ==> B(s, 3) [ RH(random(0, 360)) RU(30) F(30, 1, 14) ]; // 3 = blau

5 Man teste die Beispiele sm09_b14.rgg Verwendung eines linken Kontexts sm09_b15.rgg Verwendung eines rechten Kontexts

6 Interpretationsregeln Einbau einer weiteren Regelanwendung unmittelbar vor der grafischen Interpretation (ohne Wirkung auf die nächste Generation) Interpretationsregel- Anwendung Turtle-Interpretation

7 Beispiel: module MainBud(int x) extends Sphere(3) {{setShader(GREEN);}}; module LBud extends Sphere(2) {{setShader(RED);}}; module LMeris; module AMeris; module Flower; const float d = 30; const float crit_dist = 21; protected void init() [ Axiom ==> MainBud(10); ] public void run() { [ MainBud(x) ==> F(20, 2, 15) if (x > 0) ( RH(180) [ LMeris ] MainBud(x-1) ) else ( AMeris ); LMeris ==> RU(random(50, 70)) F(random(15, 18), 2, 14) LBud; LBud ==> RL(90) [ Flower ]; AMeris ==> Scale(1.5) RL(90) Flower; /* Flower: hier nur ein Symbol */ ] applyInterpretation(); /* Aufruf der Interpretationsregelausfuehrung (im imperativen Teil {... } !) */ } protected void interpret() /* Block mit Interpretationsregeln */ [ Flower ==> RH(30) for ((1:5)) ( RH(72) [ RL(80) F(8, 1, 9) ] ); ]

8 public void run() { [ Axiom ==> A; A ==> Scale(0.3333) for (int i:(-1:1)) for (int j:(-1:1)) if ((i+1)*(j+1) != 1) ( [ Translate(i, j, 0) A ] ); ] applyInterpretation(); } public void interpret() [ A ==> Box; ] weiteres Beispiel: erzeugt den sogenannten Menger-Schwamm (ein Fraktal)

9 public void run() { [ Axiom ==> A; A ==> Scale(0.3333) for (int i:(-1:1)) for (int j:(-1:1)) if ((i+1)*(j+1) != 1) ( [ Translate(i, j, 0) A ] ); ] applyInterpretation(); } public void interpret() [ A ==> Box; ] (a) (b)(c) A ==> Sphere(0.5); A ==> Box(0.1, 0.5, 0.1) Translate(0.1, 0.25, 0) Sphere(0.2);

10 was wird durch dieses Beispiel erzeugt? public void run() { [ Axiom ==> [ A(0, 0.5) D(0.7) F(60) ] A(0, 6) F(100); A(t, speed) ==> A(t+1, speed); ] applyInterpretation(); } public void interpret() [ A(t, speed) ==> RU(speed*t); ]

11 Der Schritt zu Graph-Grammatiken Nachteil von L-Systemen: in L-Systemen mit Verzweigungen (über Turtle-Kommandos) nur 2 mögliche Relationen zwischen Objekten: "direkter Nachfolger" und "Verzweigung" Erweiterungen: Zulassen weiterer Relationstypen (beliebig wählbar) Zulassen von Zyklen Graph-Grammatik

12 Ein Graph: eine Art, Daten zu organisieren Def.: eine Menge von Knoten, (teilweise) verbunden durch (gerichtete) Kanten (Relationen). T I I T I T TI Knoten (T = Trieb, I = Internodium) Kantentypen (Relationen): Nachfolgerbeziehung Verfeinerungsbeziehung

13 Eine Zeichenkette (string): ein sehr einfacher Graph Eine Zeichenkette kann man als 1- dimensionalen Graphen mit nur einem Kantentyp auffassen Nachfolger-Kanten (successor relation) A B A A A C C A B

14 Finden Sie so eine Struktur irgendwo im realen Leben wieder? S RS B S B B B S B B B S B B S B S B B B S B B B S B B S B S B B B S B B B S B B

15 vielleicht jetzt? Bu d Shoot Bu d Shoot Bud Shoot Bu d Shoot Bu d Shoot Bu d Shoot Bud Shoot Bu d Shoot Bu d Root

16 3 Knotentypen Wurzelkompartiment Jahrestriebe Knospen 2 Kantentypen Nachfolgerrelation (selbe Achse) Verzweigungsrelation (neue Achse) es handelt sich um einen Baum. Bäume sind spezielle Graphen

17 zugrundeliegendes Teilgebiet der Mathematik: Topologie

18 zwei isomorphe Graphen:

19

20

21

22 dichotomFischgräten

23 Graph-Grammatik (Beispiel) Regel: nun werden die Graphen zeitlich veränderlich gemacht!

24 Graph-Grammatik (Beispiel) Regel: Anwendung: hier nicht anwendbar! (falscher Kantentyp)

25 Eine relationale Wachstumsgrammatik (RGG)* (spezieller Typ von Graph-Grammatik) enthält: ein Alphabet –die Definition aller erlaubten Knotentypen Kantentypen (Typen von Relationen) das Axiom –ein initialer Graph, der aus Elementen des Alphabets zusammengesetzt ist eine Menge von Graphersetzungsregeln. * relational growth grammar

26 Hausaufgabe: 1. Bearbeiten Sie im ILIAS-Lernmodul Einführung in GroIMP (verfügbar über StudIP) die Lektionen und Lesen Sie Chapter 1, Section 1.8 im Buch The Algorithmic Beauty of Plants von P. Prusinkiewicz und A. Lindenmayer (= S ). (Beachten Sie die abweichende Notation für kontextsensitive Regeln.)


Herunterladen ppt "Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik."

Ähnliche Präsentationen


Google-Anzeigen