Struktur-Funktions-Modelle von Pflanzen

Slides:



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

Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
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,
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
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.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
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.
Seminarvortrag Möglichkeiten zur dreidimensionalen Darstellung von Straßenoberflächen Matthias Baumgarten.
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
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
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
Einführung in die Programmierung mit Java
Struktur-Funktions-Modelle von Pflanzen
SS 04 Christiane Rauh Christian Hellinger
Struktur-Funktions-Modelle von Pflanzen
Kap. 12 R-Bäume GB B31 B245 Box 1: Box 2: Box 3: Box 4: Box 5:
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

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

zuletzt: ein weiterer Regeltyp: Aktualisierungsregeln Notation von Graphen in XL der aktuelle Graph in GroIMP abgeleitete Relationen (transitive Hülle)

als nächstes: Die Sprache XL: Übersicht Queries im Graphen Die Software GroIMP: Übersicht ein erstes Modell für Beschattung

Die Sprache XL XL „eXtended L-system language“ Einordnung in die Programmierparadigmen: imperativ objektorientiert regelbasiert Java XL

Sprachspezifikation: Kniemeyer (2008) Die Sprache XL Sprachspezifikation: Kniemeyer (2008) Dissertation: http://nbn-resolving.de/urn/resolver.pl?urn=urn:nbn:de:kobv:co1-opus-5937  Erweiterung von Java  erlaubt zugleich Spezifikation von L-Systemen und RGG (Graph-Grammatiken) in intuitiv verständlicher Regelschreibweise imperative Blöcke, ähnlich wie in Java: { ... } regelorientierte Blöcke (RGG-Teil): [ ... ]

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

Eigenschaften der Sprache XL: ● Knoten der Graphen sind Java-Objekte, auch Geometrie-Objekte Beispiel: XL-Programm für die Koch‘sche 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 Koch‘sche 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); ] 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)

Zugriff auf Knotenattribute: Beispiel sm09_b26.rgg module Knospe() extends Sphere(0.1) {{ setShader(RED); }}; module Internodium() extends F(1) {{ setShader(GREEN); setScale(1); }}; protected void init() [ Axiom ==> Internodium() Knospe(); ] public void run1() [ i:Internodium ::> i[length] = i[length] + 0.1; public void run2() [ i:Internodium ::> i.length = i.length + 0.1; public void run3() [ i:Internodium ::> i[scale] += 0.1; public void run4() [ i:Internodium ::> i.setScale(1);

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, später 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“)

Anfragen (queries) in den erzeugten Graphen Möglichkeit der Verbindung von Struktur und Funktion Beispiel: suche alle Blätter, die Nachfolger des Knotens c sind, und summiere deren Fläche query

Anfragen (queries) in den erzeugten Graphen Möglichkeit der Verbindung von Struktur und Funktion Beispiel: suche alle Blätter, die Nachfolger des Knotens c sind, und summiere deren Fläche query transitive Hüllenbildung Aggregationsoperator

Anfragen (queries) in den erzeugten Graphen Möglichkeit der Verbindung von Struktur und Funktion Beispiel: suche alle Blätter, die Nachfolger des Knotens c sind, und summiere deren Fläche query Ergebnis kann übergeben werden an imperative Berechnung transitive Hüllenbildung Aggregationsoperator

Query in einem Pflanzen- / Tier-Modell: p:Plant, (* a:Animal, (distance(a,p) < p[radius]) *)

Query in einem Pflanzen- / Tier-Modell: p:Plant, (* a:Animal, (distance(a,p) < p[radius]) *) sucht alle Tiere innerhalb des Radius von p

Die Software GroIMP http://www.grogra.de dort auch Link auf die Download-Seite http://sourceforge.net/projects/groimp/ und Beispiele-Galerie. Siehe auch Lerneinheiten zu GroIMP (Autor: K. Petersen, M.Sc. Forst., Sommersem. 2009). GroIMP ist ein Open-Source-Projekt!

GroIMP (Growth-grammar related Interactive Modelling Platform)

GroIMP ist eine Kombination von: - XL-Compiler und -Interpreter - Entwicklungsumgebung für XL - 3D-Modeller (interaktiv) - 3D-Renderer (mehrere Varianten) - 2D-Graphen-Visualisierer Editor für 3D-Objekte und Attribute Texturerzeugungswerkzeug Display für dtd-Dateien Lichtsimulationswerkzeug

Beispiel eines mit GroIMP realisierten Pflanzenmodells (Gerste):

Anwendungsbeispiel: Modellierung von Parklandschaften (Rogge & Moschner 2007, für Stiftung Branitzer Park, Cottbus) mit GroIMP generierte Erle in VRML-Welt

Ergebnisse aus Architektur-Seminar mit XL: Liang 2007

Jarchow 2007

virtuelle Landschaft (mit Buchen-Fichten-Mischbestand)

weitere Beispiele für Struktur-Funktions-Modelle von Pflanzen, mit GroIMP realisiert:

GroIMP: neuere Erweiterungen „Supershape“ (Klasse von math. definierten Oberflächen) als geometrische Primitivobjekte

GroIMP: neuere Erweiterungen Raten-Zuweisungsoperator: Möglichkeit, effiziente und numerisch stabile Lösungsverfahren für gewöhnliche Differentialgleichungen auf einfache Weise im Modellcode aufzurufen (Hemmerling 2012) Example:

GroIMP: neuere Erweiterungen verbesserte OpenGL-3D-Ansicht zur Visualisierung (Hartmann, Hemmerling 2010)

GroIMP: neuere Erweiterungen integriertes Werkzeug für die Erzeugung von „Billboard-Objekten“ zur schnellen Vegetations- darstellung (Hemmerling 2010)

GroIMP: neuere Erweiterungen integrierter virtueller Laserscanner (realisiert mit Ecole Centrale Paris, Praktikumsarbeit eines Studenten) (Etard 2011)

Modellierung von Licht / Beschattung erster Modellansatz (stark vereinfachend): Beschattung eines Objekts liegt dann vor, wenn sich in einem gedachten Kegel mit Spitze im Objekt, geöffnet nach oben (z-Richtung), noch andere Objekte befinden. Beispiel: sm09_b42.rgg Lichtkonkurrenz dreier 2-dimensionaler Modellpflanzen

module Segment(int t, int ord) extends F0; module TBud(int t) extends F(1, 1, 1); module LBud extends F(0.5, 0.5, 1); Vector3d z = new Vector3d(0, 0, 1); protected void init() [ Axiom ==> P(2) D(5) V(-0.15) [ TBud(-4) ] RU(90) M(600) RU(-90) [ TBud(0) ] RU(-90) M(1200) RU(90) [ TBud(-8) ]; ] public void run() TBud(t), (t < 0) ==> TBud(t+1); x:TBud(t), (t >= 0 && empty( (* s:Segment, (s in cone(x, z, 45)) *) ) ) ==> L(random(80, 120)) Segment(0, 0) [ MRel(random(0.5, 0.9)) RU(60) LBud ] [ MRel(random(0.5, 0.9)) RU(-60) LBud ] TBud(t+1); y:LBud, (empty( (* s:Segment, (s in cone(y, z, 45)) *) ) ) ==> L(random(60, 90) Segment(0, 1) RV0 LBud; Segment(t, o), (t < 8) ==> Segment(t+1, o); Segment(t, o), (t >= 8 && o == 1) ==>> ; /* Entfernen des ganzen Astes */