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

Slides:



Advertisements
Ähnliche Präsentationen
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Advertisements

7. Natürliche Binärbäume
Kapitel 4 Datenstrukturen
Java: Objektorientierte Programmierung
Baumstrukturen Richard Göbel.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Regelbasierte Programmierung mit XL
Regelbasierte Programmierung mit XL
Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie? Winfried Kurth Brandenburgische Technische Universität Cottbus,
DVG Klassen und Objekte
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Artifizielle Wachstumsprozesse Winfried Kurth Günter Barczik Reinhard Hemmerling Udo Bischof Lehrstuhl Grafische SystemeLehrstuhl Entwerfen Bauen im Bestand.
Artifizielle Wachstumsprozesse Winfried Kurth Günter Barczik Reinhard Hemmerling Lehrstuhl Grafische SystemeLehrstuhl Entwerfen Bauen im Bestand.
Artifizielle Wachstumsprozesse Ergänzung zu Teil 1 Winfried Kurth Günter Barczik Reinhard Hemmerling Lehrstuhl Grafische SystemeLehrstuhl Entwerfen Bauen.
Grundkonzepte Java - Klassendefinition
2. Die rekursive Datenstruktur Baum 2
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Semantische Analyse und attributierte Grammatiken
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
 Präsentation transkript:

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

zuletzt: Graphen als mathematische Grundstruktur ein Exkurs: topologische Analyse von Graphen Graph-Ersetzungsregeln zwei Regeltypen: L-System- und SPO-Regeln

als nächstes: Die Sprache XL: Überblick zu wichtigen Eigenschaften Kantentypen (Relationen) Graphansicht in GroIMP, Graphlayouts sequenzieller und paralleler Ableitungsmodus Aktualisierungsregeln

imperativobjektorientiertregelbasiert Java XL Die Sprache XL eXtended L-system language Einordnung in die Programmierparadigmen:

Die Sprache XL Sprachspezifikation: Kniemeyer (2008) Dissertation: Erweiterung von Java erlaubt zugleich Spezifikation von L-Systemen und RGG (Graph-Grammatiken) in intuitiv verständlicher Regelschreibweise prozedurale Blöcke, ähnlich wie in Java: {... } regelorientierte Blöcke (RGG-Teil): [... ]

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte

Beispiel: XL-Programm für die Kochsche Kurve public void derivation() [ Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); ] Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte

Beispiel: XL-Programm für die Kochsche Kurve public void derivation() [ Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); ] Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Knoten des Graphen Kanten (Typ Nachfolger)

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram...

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram... Zugriff auf Attribute über die Parameterliste: Box(x, y, z) (Länge, Breite, Höhe) oder mit speziellen Funktionen: Box(...).(setColor(0x007700)) (Farbe)

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram... Transformationsknoten Translate(x, y, z), Scale(cx, cy, cz), Scale(c), Rotate(a, b, c), RU(a), RL(a), RH(a), RV(c), RG,...

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Spezielle Knoten: Geometrieobjekte Box, Sphere, Cylinder, Cone, Frustum, Parallelogram... Transformationsknoten Translate(x, y, z), Scale(cx, cy, cz), Scale(c), Rotate(a, b, c), RU(a), RL(a), RH(a), RV(c), RG,... Lichtquellen PointLight, DirectionalLight, SpotLight, AmbientLight

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen Beispiel: Regeln für den stochastischen Baum Axiom ==> L(100) D(5) A; A ==> F0 LMul(0.7) DMul(0.7) if (probability(0.5)) ( [ RU(50) A ] [ RU(-10) A ] ) else ( [ RU(-50) A ] [ RU(10) A ] );

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung (kann modifiziert werden: Sequenzieller Modus einstellbar, gleich mehr)

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich spezieller Zuweisungsoperator := neben dem normalen = Quasiparallele Zuweisung an die Variablen x und y: x := f(x, y); y := g(x, y);

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren)

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren) mengenwertige Ausdrücke (genauer: Producer statt Mengen)

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren) mengenwertige Ausdrücke (genauer: Producer statt Mengen) Graph-Abfragen (queries) zur Analyse der aktuellen Struktur

Beispiel für Graph-query: Binärer Baum, Wachstum soll nur erfolgen, wenn genügender Abstand zu anderen F -Objekten Axiom ==> F(100) [ RU(-30) A(70) ] RU(30) A(100); a:A(s) ==> if ( forall(distance(a, (* F *)) > 60) ) ( RH(180) F(s) [ RU(-30) A(70) ] RU(30) A(100) ) ohne die if-Bedingung mit der if-Bedingung

Eigenschaften der Sprache XL: Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Regeln in Blöcken [...] organisierbar, Steuerung der Anwendung durch Kontrollstrukturen parallele Regelanwendung parallele Ausführung von Zuweisungen möglich Operatorüberladung (z.B. + für Zahlen wie für Vektoren) mengenwertige Ausdrücke (genauer: Producer statt Mengen) Graph-Abfragen (queries) zur Analyse der aktuellen Struktur aggregierende Operatoren (z.B. sum, mean, empty, forall, selectWhereMin)

Darstellung von Graphen in XL Knotentypen müssen mit module deklariert werden Knoten können alle Java-Objekte sein. Bei eigenen module -Deklarationen können auch Methoden (Funktionen) und zusätzliche Variablen mitdeklariert werden, wie in Java Notation für Knoten in einem Graphen: Knotentyp, optional davor: bezeichner: Beispiele: A, Meristem(t), b:Bud Notation für Kanten in einem Graphen: - Kantenbezeichner ->, <- Kantenbezeichner - Spezielle Kantentypen: Nachfolgerkante: -successor->, > oder (Leerstelle) Verzweigungskante: -branch->, +> oder [ Verfeinerungskante: />

Notationen für spezielle Kantentypen > Nachfolgerkante vorwärts < Nachfolgerkante rückwärts --- Nachfolgerkante vorwärts oder rückwärts +> Verzweigungskante vorwärts <+ Verzweigungskante rückwärts -+- Verzweigungskante vorwärts oder rückwärts /> Verfeinerungskante vorwärts </ Verfeinerungskante rückwärts --> beliebige Kante vorwärts <-- beliebige Kante rückwärts -- beliebige Kante vorwärts oder rückwärts (vgl. Kniemeyer 2008, S. 150 und 403)

selbstdefinierte Kantentypen const int xxx = EDGE_0; // oder EDGE_1,..., EDGE_14... Verwendung im Graphen: -xxx->, <-xxx-, -xxx- Notation von Graphen in XL Beispiel: wird im Programmcode dargestellt als (die Darstellung ist nicht eindeutig!) ( >: Nachfolgerkante, +: Verzweigungskante)

wie lässt sich der folgende Graph im Code textuell beschreiben? X Bud Leaf + > 01

abgeleitete Relationen Relation zwischen Knoten, die durch mehrere Kanten desselben Typs (hintereinander) verbunden sind: transitive Hülle der ursprünglichen Relation (Kante)

Bezeichnungsweise für die transitive Hülle in XL: (-kantentyp->)+ reflexiv-transitive Hülle (auch Knoten steht in Relation zu sich selbst zugelassen): (-kantentyp->)* z.B. für die Nachfolgerrelation: (>)* gemeinsame transitive Hülle der speziellen Kantentypen Nachfolger und Verzweigung, in umgekehrter Richtung: -ancestor-> Interpretation: diese Relation besteht zu allen Vorgängerknoten in einem Baum entlang des Pfades zur Wurzel. Nächste Nachfolger eines bestimmten Knotentyps: -minDescendants-> (Knoten anderen Typs werden übersprungen)

Nachfolgerkante Verzweigungskante Relation ancestor minDescendants

Der aktuelle Graph GroIMP führt immer einen Graphen mit, der die gesamte aktuelle Strukturinformation beinhaltet. Dieser wird durch Anwendung der Regeln umgeformt. Achtung: Nicht alle Knoten des Graphen werden in der 3D- Ansicht durch sichtbare Objekte dargestellt! - F0, F(x), Box, Sphere : ja - RU(30), A, B : normalerweise nicht (wenn nicht mit extends aus sichtbaren Objekten abgeleitet) Der Graph kann in der 2D-Graphansicht komplett dargestellt werden (in GroIMP: Panels - 2D - Graph).

Laden Sie eine Beispiel-rgg-Datei in GroIMP und führen Sie einige Schritte aus (verwenden Sie keine zu komplexe Struktur). Öffnen Sie die 2D-Graphansicht, verankern Sie mit der Maus das Fenster in der GroIMP-Oberfläche und testen Sie verschiedene Layouts (Layout - Edit): Tree Sugiyama Square Circle Random SimpleEdgeBased Fruchterman Verfolgen Sie die Veränderung des Graphen, wenn Sie die Regeln anwenden (redraw anklicken)!

was ist von der in XL erzeugten Graph-Struktur sichtbar (in der 3D-Ansicht) ? alle Geometrieknoten, die von der Wurzel (Zeichen: ^) des Graphen über genau einen Pfad, der nur aus "successor"- und "branch"-Kanten besteht, erreichbar sind. Erzwingen, dass ein Objekt auf jeden Fall sichtbar ist: ==>> ^ Objekt

Ableitungsmodi in XL standardmäßig voreingestellt: parallele Regelanwendung (wie bei L-Systemen) Umschalten auf sequenzielle Anwendung (in jedem Schritt wird dann höchstens eine Regel angewandt): setDerivationMode(SEQUENTIAL_MODE) Rückschaltung auf parallel: setDerivationMode(PARALLEL_MODE) testen Sie das Beispiel sm09_b32.rgg

ein weiterer Regeltyp: Aktualisierungsregeln manchmal will man gar nichts an der Graph-Struktur ändern, sondern nur Attribute eines einzelnen Knotens verändern (z.B. Berechnung der Photosyntheseleistung für ein Blatt). Dazu gibt es einen eigenen Regeltyp: A ::> { imperativer Code }; Testen Sie die Beispiele sm09_b25.rgg, sm09_b16.rgg, sm09_b17.gsz, sm09_b18.rgg

Hausaufgabe: Lesen Sie die Abschnitte 3.1 bis 3.10 (S ) aus der Dissertation von Ole Kniemeyer ( opus-5937 ).