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

Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

  • Upload
    nicole

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 3. Vorlesung: 22. 4. 2010. letztes Mal: Laden von dtd-Dateien erste Analysen von Verzweigungssystemen - PowerPoint PPT Presentation

Citation preview

Page 1: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Struktur-Funktions-Modelle von Pflanzen- Sommersemester 2010 -

Winfried Kurth

Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik

3. Vorlesung: 22. 4. 2010

Page 2: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

letztes Mal:

• Laden von dtd-Dateien

• erste Analysen von Verzweigungssystemen

• Programmierparadigmen (imperativ, objektorientiert, regelbasiert)

• Turtle-Geometrie

• deren Ausführung mit GroIMP

Page 3: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel: Zeichnen eines Dreiecks

protected void init() [ Axiom ==> RU(30) F(10) RU(120) F(10) RU(120) F(10) ]

siehe Datei sm09_b01.rgg

Page 4: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

heute:

• einfache L-Systeme (Zeichenketten-Ersetzungssysteme)

• ihre Ausführung mit GroIMP

• einfache Verzweigungsmuster, modelliert mit L-Systemen

Page 5: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Regelsysteme zur Ersetzung von Zeichenketten

in jedem Ableitungsschritt parallele Ersetzung aller Zeichen, auf die eine Regel anwendbar ist

von A. Lindenmayer (Botaniker) 1968 zur Modellierung des Wachstums von fadenförmigen Algen eingeführt

L-Systeme (Lindenmayer-Systeme)

Aristid Lindenmayer (1925-1989)

Dynamische Strukturbeschreibung

Page 6: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

L-Systeme mathematisch:

Ein L-System ist ein Tripel (, , R); darin ist:

eine Menge von Zeichen, das Alphabet,

eine Zeichenkette mit Zeichen aus , das Startwort (auch "Axiom"),

R eine Menge von Regeln der Form

Zeichen Zeichenkette;

darin sind das Zeichen auf der linken Regelseite und die Zeichenkette aus entnommen.

Page 7: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

zum Vergleich:

Grammatik für natürliche Sprache:

Satz S P O

S Max

S Tina

P lernt

O Englisch

O Französisch

mögliche Ableitungen:

Satz Satz

S P O S P O

Max lernt Französisch Tina lernt Englisch

Page 8: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Ein Ableitungsschritt (rewriting) einer Zeichenkette besteht aus der Ersetzung aller ihrer Zeichen, die in linken Regelseiten vorkommen, durch die entsprechenden rechten Regelseiten.

Man vereinbart: Zeichen, auf die keine Regeln anwendbar sind, werden unverändert übernommen.

Page 9: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Ein Ableitungsschritt (rewriting) einer Zeichenkette besteht aus der Ersetzung aller ihrer Zeichen, die in linken Regelseiten vorkommen, durch die entsprechenden rechten Regelseiten.

Man vereinbart: Zeichen, auf die keine Regeln anwendbar sind, werden unverändert übernommen.

Ergebnis:

Ableitungskette von Zeichenketten, die sich durch wiederholte Anwendung des Ersetzungsvorgangs aus dem Startwort ergeben.

1 2 3 ....

Page 10: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

Page 11: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

A

Page 12: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

B

Page 13: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

AB

parallele Ersetzung

Page 14: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

BAB

Page 15: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

BAB

Page 16: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

ABBAB

Page 17: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

Ableitungskette:

A B AB BAB ABBAB BABABBAB

ABBABBABABBAB BABABBABABBABBABABBAB

...

Page 18: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Alphabet {A, B}, Startwort A

Regelmenge:

A BB AB

Ableitungskette:

A B AB BAB ABBAB BABABBAB

ABBABBABABBAB BABABBABABBABBABABBAB

...

wie lang ist die n-te Zeichenkette in dieser Ableitung?

Page 19: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

was für die Modellierung von grafischen und biologischen Strukturen noch fehlt:

eine geometrische Interpretation

Page 20: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

was für die Modellierung von grafischen und biologischen Strukturen noch fehlt:

eine geometrische Interpretation

Füge also hinzu:

eine Abbildung, die jeder Zeichenkette eine Teilmenge des 3-dimensionalen Raumes zuordnet

dann: "interpretierte" L-System-Abarbeitung

1 2 3 ....

S1 S2 S3 ....

S1, S2, S3, ... können als Entwicklungsstufen eines Objekts,

einer Szene oder eines Organismus interpretiert werden.

Page 21: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Für die Interpretation der Zeichenketten:

Turtle-Geometrie

Der Turtle-Befehlsvorrat wird zu einer Untermenge der Zeichenmenge des L-Systems.

Symbole, die nicht Turtle-Befehle sind, werden von der Turtle ignoriert.

Page 22: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Für die Interpretation der Zeichenketten:

Turtle-Geometrie

Der Turtle-Befehlsvorrat wird zu einer Untermenge der Zeichenmenge des L-Systems.

Symbole, die nicht Turtle-Befehle sind, werden von der Turtle ignoriert.

Verbindung mit dem imperativen Paradigma

Page 23: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel:

Regeln

A ==> F0 [ RU(45) B ] A ;B ==> F0 B ;

Startwort A

(A und B werden normalerweise nicht geometrisch interpretiert.)

InterpretationdurchTurtle-Geometrie

Page 24: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

was für eine Struktur liefert das L-System

A ==> [ LMul(0.25) RU(-45) F0 ] F0 B;

B ==> [ LMul(0.25) RU(45) F0 ] F0 A;

mit Startwort L(10) A ?

Page 25: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

was für eine Struktur liefert das L-System

A ==> [ LMul(0.25) RU(-45) F0 ] F0 B;

B ==> [ LMul(0.25) RU(45) F0 ] F0 A;

mit Startwort L(10) A ?

äquivalente Regel:

A ==> [ LMul(0.25) RU(-45) F0 ] F0 RH(180) A;

Page 26: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Flächenfüllende Kurve:

Axiom ==> L(10) RU(-45) X RU(-45) F(1) RU(-45) X;

X ==> X F0 X RU(-45) F(1) RU(-45) X F0 X

weiteres Beispiel:

Page 27: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Flächenfüllende Kurve:

Axiom ==> L(10) RU(-45) X RU(-45) F(1) RU(-45) X;

X ==> X F0 X RU(-45) F(1) RU(-45) X F0 X

Page 28: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Flächenfüllende Kurve:

Axiom ==> L(10) RU(-45) X RU(-45) F(1) RU(-45) X;

X ==> X F0 X RU(-45) F(1) RU(-45) X F0 X

indisches Kolam-Muster„Anklets of Krishna“

Page 29: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispiel für ein Fraktal:

Koch'sche Kurve

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)

Page 30: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth
Page 31: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth
Page 32: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth
Page 33: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth
Page 34: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth
Page 35: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

.

Page 36: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

vergleiche Beispieldatei sm09_b02.rgg :

geschlossene Koch-Kurve, entwickelt aus Dreieck

protected void init ()[ Axiom ==> RU(50) F(10) RU(120) F(10) RU(120) F(10); ]

// oeffentliche Methode zur interaktiven Verwendung in GroIMP// (ueber Button):public void anwendung ()// Regeln muessen in []-Klammern gesetzt und mit ; beendet werden[

// jedes F() wird durch 4 kleinere F() ersetzt// die Laenge des F auf der rechten Regelseite wird// durch das x auf die linke Seite mit heruebergemomen

F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3);]

Page 37: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Verzweigungsbeispiel:

F0 ==> F0 [ RU(25.7) F0 ] F0 [ RU(-25.7) F0 ] F0 ;

Ergebnis nach 7 Schritten:

(Startwort L(10) F0)

Page 38: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Verzweigungsbeispiel:

F0 ==> F0 [ RU(25.7) F0 ] F0 [ RU(-25.7) F0 ] F0 ;

Ergebnis nach 7 Schritten:

(Startwort L(10) F0)

nicht sehr botanisch!!

Page 39: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Beispieldatei sm09_b03.rgg :/* Sie lernen an diesem Beispiel:- wie Sie ein einfaches Pflanzenmodell (nach dem Architekturmodell Schoute) erstellen- wie sie Verzweigungen (Subgraphen) mit [ ] angeben */

// Example of a simple tree architecture (Schoute architecture)

//----------- Extensions to the standard alphabet ----------//Shoot() is an extension of the turtle-command F() and stands for an annual shootmodule Shoot(float len) extends F(len);

// Bud is an extension of a sphere object and stands for a terminal bud// its strength controls the length of the produced shoot in the next timestepmodule Bud(float strength) extends Sphere(0.2){{ setShader(RED); setTransform(0, 0, 0.3); }};//-----------------------------------------------------------

protected void init ()[ // Startzustand (eine Knospe) Axiom ==> Bud(5);]

public void run ()[ // a square bracket [] will indicate a branch (daughter relation) // Rotation around upward axis (RU) and head axis (RH) // Decrease of strength of the Bud (each step by 20%)

Bud(x) ==> Shoot(x) [ RU(30) Bud(0.8*x) ] [ RU(-30) Bud(0.8*x) ];]

Page 40: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Verzweigung, alternierende Zweigstellung und Verkürzung:

Axiom ==> L(10) F0 A ;

A ==> LMul(0.5) [ RU(90) F0 ] F0 RH(180) A ;

in XL muss hier A zuvor als eigenes Modul deklariert werden:

module A;

Page 41: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

welche Struktur liefert

Axiom ==> F(10) A ;

A ==> [ RU(-60) F(6) RH(180) A Sphere(3) ] [ RU(40) F(10) RH(180) A Sphere(3) ];

Sphere ==> Z; ?

(F(n) liefert Linie der vorgegebenen Länge n,Sphere(n) eine Kugel mit Radius n)

Page 42: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Erweiterung des Symbol-Konzepts:

Lasse reellwertige Parameter nicht nur bei Turtle-Kommandos wie "RU(45)" und "F(3)" zu, sondern bei allen Zeichen

parametrische L-Systeme

beliebig lange, endliche ParameterlistenParameter werden bei Regel-Matching mit Werten belegt

Beispiel:

Regel A(x, y) ==> F(7*x+10) B(y/2)

vorliegendes Zeichen z.B.: A(2, 6)nach der Regelanwendung: F(24) B(3)

Parameter können in Bedingungen abgeprüft werden(logische Bedingungen mit Java-Syntax):

A(x, y) (x >= 17 && y != 0) ==> ....

Page 43: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Welche Struktur wird von folgendem L-System erzeugt?

Axiom ==> [ RU(90) M(1) RU(90) A(1) ] A(1);

A(n) ==> F(n) RU(90) A(n+1);

Page 44: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Welche Struktur wird von folgendem L-System erzeugt?

Axiom ==> [ RU(90) M(1) RU(90) A(1) ] A(1);

A(n) ==> F(n) RU(90) A(n+1);

Variante:

in der zweiten Regel "RU(90)" etwa durch "RU(92)" ersetzen.

Page 45: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2010 - Winfried Kurth

Hausaufgabe:

Lesen Sie Chapter 1, Section 1.1 – 1.6 (ohne 1.4) im Buch „The Algorithmic Beauty of Plants“ von P. Prusinkiewicz und A. Lindenmayer (online verfügbar, siehe Literaturseite zur Veranstaltung). (= S. 1-27 ohne Abschnitt 1.4).