Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie?

138
Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie? Winfried Kurth Brandenburgische Technische Universität Cottbus, Lehrstuhl Grafische Systeme

description

Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie? Winfried Kurth Brandenburgische Technische Universität Cottbus, Lehrstuhl Grafische Systeme. - PowerPoint PPT Presentation

Transcript of Welche Paradigmen der Programmierung braucht man für die Computergrafik und für die Ökologie?

Page 1: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Welche Paradigmen der Programmierung braucht man für die Computergrafik

und für die Ökologie?

Winfried Kurth

Brandenburgische Technische Universität Cottbus, Lehrstuhl Grafische Systeme

Page 2: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"

Kurth Göttingen, 30. 11. 2007

Page 3: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"

2. Einige wichtige Programmierparadigmen

Kurth Göttingen, 30. 11. 2007

Page 4: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"

2. Einige wichtige Programmierparadigmen

3. Synthese: Die Sprache XL

Kurth Göttingen, 30. 11. 2007

Page 5: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"

2. Einige wichtige Programmierparadigmen

3. Synthese: Die Sprache XL

4. Anwendungsbeispiele

Kurth Göttingen, 30. 11. 2007

Page 6: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"

2. Einige wichtige Programmierparadigmen

3. Synthese: Die Sprache XL

4. Anwendungsbeispiele

5. Das VR-Paradigma

Kurth Göttingen, 30. 11. 2007

Page 7: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"

2. Einige wichtige Programmierparadigmen

3. Synthese: Die Sprache XL

4. Anwendungsbeispiele

5. Das VR-Paradigma

6. Zusammenfassung

Kurth Göttingen, 30. 11. 2007

Page 8: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

1. Der Begriff "Programmierparadigma"

Paradigma:

grundlegende Denkweise

Page 9: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Paradigma:

"Beschreibt eine Menge von Theorien,Standards und Methoden, die gemeinsameinen Weg repräsentieren, Wissen zu organisieren"

Thomas Kuhn 1970: The Structureof Scientific Revolutions

Page 10: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Paradigma:

"Beschreibt eine Menge von Theorien,Standards und Methoden, die gemeinsameinen Weg repräsentieren, Wissen zu organisieren"

Thomas Kuhn 1970: The Structureof Scientific Revolutions

Paradigmenwechsel: schwierig.Revolution im Denken!

Page 11: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

wurde aufgegriffen von Robert Floyd 1978:

Turing Award Lecture

"The Paradigmsof Programming"

Robert W. Floyd (1936-2001)

Bildquelle: http://delivery.acm.org/10.1145/1290000/1283934/a1978-floyd.pdf?key1=1283934&key2=6725076911&coll=GUIDE&dl=GUIDE&CFID=45530762&CFTOKEN=68670312

Page 12: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Welche Paradigmen werden nahegelegtdurch Probleme...

... der Ökologie ?

... der Grafik ?

Page 13: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ökologie:

Bildquelle:

www.lusttoeter.de/images/rehli.jpg (20.11.2007)

Page 14: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ökologie:

Organismen

Page 15: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ökologie:

Organismen

Aufbau beschreiben

Page 16: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ökologie:

Organismen

Verhalten(unter bestimmtenBedingungen)

Aufbau beschreiben

Page 17: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ökologie:

Organismen

Verhalten(unter bestimmtenBedingungen)

Aufbau beschreiben

Gesetzmäßigkeiten(Regeln) bestimmen

Page 18: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ökologie:

Organismen

Verhalten(unter bestimmtenBedingungen)

Prozesse

Aufbau beschreiben

Gesetzmäßigkeiten(Regeln) bestimmen

Page 19: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ökologie:

Organismen

Verhalten(unter bestimmtenBedingungen)

Prozesse

Aufbau beschreiben

Gesetzmäßigkeiten(Regeln) bestimmenAblauf berechnen

Page 20: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungGrafisches System:

Page 21: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungGrafisches System:

Objekte(mit Attributen)

regelmäßigeStrukturen

Prozesse

Page 22: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

2. Einige wichtige Programmierparadigmen

- für numerische Simulation von Prozessen:

imperatives Paradigma

Page 23: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

2. Einige wichtige Programmierparadigmen

- für numerische Simulation von Prozessen:

imperatives Paradigma(auch: von-Neumann-Paradigma,Kontrollfluss-Paradigma)

John von Neumann (1903-1957)Bildquelle: hps.elte.hu/~redei/Utrecht/JVN1950S%20.jpg (20.11.2007)

Page 24: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

"Befehls-Programmierung"

Computer = ?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

imperativ:

Page 25: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

"Befehls-Programmierung"

Computer = Maschine zur Veränderung von Variablen-werten (diese Veränderungen können Seiteneffekte haben).

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 26: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

"Befehls-Programmierung"

Computer = Maschine zur Veränderung von Variablen-werten (diese Veränderungen können Seiteneffekte haben).

Programm = ?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 27: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

"Befehls-Programmierung"

Computer = Maschine zur Veränderung von Variablen-werten (diese Veränderungen können Seiteneffekte haben).

Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen).

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 28: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

"Befehls-Programmierung"

Computer = Maschine zur Veränderung von Variablen-werten (diese Veränderungen können Seiteneffekte haben).

Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen).

Programmiersprachen, die dieses Paradigma unterstützen: Fortran, Pascal, C, ..., Teile von Java, ...

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 29: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel:

x = 0;

while (x < 100)

x = x + 1;

Inhalt der Variable x wird verändert

Schleife legt Kontrollfluss fest

Beachte: "=" steht hier nicht für math. Gleichheit, sondern für Zuweisung (prozesshaft)!

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 30: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

(ein) Nachteil des imperativen Paradigmas:

simultane, parallele Zuweisung wird nicht unterstützt

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 31: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

(ein) Nachteil des imperativen Paradigmas:

simultane, parallele Zuweisung wird nicht unterstützt

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel (Floyd 1978):

Räuber-Beute-System, beschrieben durch

Rneu = f(R, B), Bneu = g(R, B)

Anfängerfehler beim Programmieren:

for (i = ... ) { R = f(R, B); B = g(R, B); }

Page 32: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

(ein) Nachteil des imperativen Paradigmas:

simultane, parallele Zuweisung wird nicht unterstützt

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel (Floyd 1978):

Räuber-Beute-System, beschrieben durch

Rneu = f(R, B), Bneu = g(R, B)

Anfängerfehler beim Programmieren:

for (i = ... ) { R = f(R, B); B = g(R, B); }

Page 33: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel für imperatives Grafik-Programmieren:

Turtle-Geometrie

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Turtle:

zeichnende Schildkröte, die auf Befehle hört

Variablen: Position, Orientierung, Schrittweite, ...

Page 34: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Turtle:

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 35: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0

Page 36: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0

Page 37: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0 RU(90)

Page 38: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0 RU(90)

Page 39: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0 RU(90) F0

Page 40: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0 RU(90) F0

Page 41: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0 RU(90) F0 RU(90) LMul(0.5) F0

Page 42: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

F0 RU(90) F0 RU(90) LMul(0.5) F0

Page 43: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

anderes Beispiel:

for ((1:20)) ( for ((1:36))

( F0 RU(165) F0 RU(165) ) RU(270) )

Page 44: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

anderes Beispiel:

for ((1:20)) ( for ((1:36))

( F0 RU(165) F0 RU(165) ) RU(270) )

Page 45: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Erweiterung auf 3D-Grafik:

Turtle-Rotationen um 3 Achsen

Page 46: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Erweiterung auf 3D-Grafik:

Turtle-Rotationen um 3 Achsen

head

left

up

Page 47: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Erweiterung auf 3D-Grafik:

Turtle-Rotationen um 3 Achsen

RHRL

RU

Page 48: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

zurück zum Beispiel:

Objekte(mit Attributen)

Organismen

Page 49: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Objektorientiertes Paradigma

Computer = Umgebung für virtuelle Objekte

Programm = Auflistung von (Objekt-) Klassen,

d.h. allgemeiner Spezifikationen von Objekten

Programmiersprachen: Smalltalk, Simula, C++, Java, ...

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 50: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel:

class Blatt

{

float blattflaeche;float trockenmasse;

float npp(){ ..... }

void seneszenz(){ ..... }

}

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 51: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

regelmäßigeStrukturen

Page 52: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Regelbasiertes Paradigma

Computer = Transformationsmaschine für Strukturen

Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist.

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 53: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Regelbasiertes Paradigma

Computer = Transformationsmaschine für Strukturen

Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist.

Programm = Menge von Transformationsregeln

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 54: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Regelbasiertes Paradigma

Computer = Transformationsmaschine für Strukturen

Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist.

Programm = Menge von Transformationsregeln

Programmiersprachen: L-System-Sprachen, KI-Sprachen, Prolog, ...

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 55: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Regelsysteme zur Ersetzung von Zeichen in Zeichenketten

Beispiel: L-Systeme (Lindenmayer-Systeme)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 56: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Regelsysteme zur Ersetzung von Zeichen in Zeichenketten

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

von A. Lindenmayer (Botaniker) 1968 eingeführt

Beispiel: L-Systeme (Lindenmayer-Systeme)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Aristid Lindenmayer (1925-1989)

Bildquelle: home.wtal.de/schwebin/lsyspics/einflsys01.jpg (20.11.2007)

Page 57: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

Page 58: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

A

Page 59: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

A

Page 60: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

B

Page 61: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

B

Page 62: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

AB

Page 63: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

AB

parallele Ersetzung

Page 64: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

BAB

Page 65: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

BAB

Page 66: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

ABBAB

Page 67: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

Startwort A

Regelmenge:

A BB AB

Ableitungskette:

A B AB BAB ABBAB BABABBAB

ABBABBABABBAB BABABBABABBABBABABBAB

...

Page 68: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel:

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 69: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Geometrische Interpretation von L-Systemen

Turtle-Befehlsvorrat wird Teilmenge des L-System-Alphabets

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

Verbindung mit dem imperativen Paradigma

für die Grafik:

Page 70: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel für ein Fraktal:

Koch'sche Kurve

Start RU(90) F(10);F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 71: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel für ein Fraktal:

Koch'sche Kurve

Start RU(90) F(10);F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 72: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel für ein Fraktal:

Koch'sche Kurve

Start RU(90) F(10);F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 73: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel für ein Fraktal:

Koch'sche Kurve

Start RU(90) F(10);F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 74: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel für ein Fraktal:

Koch'sche Kurve

Start RU(90) F(10);F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 75: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel für ein Fraktal:

Koch'sche Kurve

Start RU(90) F(10);F(x) F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

.

Page 76: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Beispiel: Fichtenmodell (3D)

mit L-System erzeugt

(auf Basis von Messungen)

Page 77: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

ein anderer regelbasierter Mechanismus:

Graph-Grammatiken

Page 78: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

ein anderer regelbasierter Mechanismus:

Graph-Grammatiken

Regel:

Page 79: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

ein anderer regelbasierter Mechanismus:

Graph-Grammatiken

Regel:

Anwendung:

Page 80: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:

Programmierparadigmen

Page 81: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:

Programmierparadigmen

● imperativ

Page 82: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:

Programmierparadigmen

● imperativ

- Veränderung von Variablen

- Turtle-Geometrie

Page 83: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:

Programmierparadigmen

● imperativ

- Veränderung von Variablen

- Turtle-Geometrie

● objektorientiert

Page 84: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:

Programmierparadigmen

● imperativ

- Veränderung von Variablen

- Turtle-Geometrie

● objektorientiert

● regelbasiert

Page 85: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:

Programmierparadigmen

● imperativ

- Veränderung von Variablen

- Turtle-Geometrie

● objektorientiert

● regelbasiert

- L-Systeme

- Graph-Grammatiken

Page 86: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung:

Programmierparadigmen

● imperativ

- Veränderung von Variablen

- Turtle-Geometrie

● objektorientiert

● regelbasiert

- L-Systeme

- Graph-Grammatiken

● weitere: funktional; nebenläufig; chemisch ...

Page 87: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

3. Synthese: Die Sprache XL

„eXtended L-system language“

Programmiersprache, die parallele Graph-Grammatiken einfach verfügbar macht

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 88: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

imperativ objektorientiert regelbasiert

Java

Page 89: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

imperativ objektorientiert regelbasiert

Java

XL

Page 90: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Die Sprache XL

Sprachspezifikation: Kniemeyer (2007)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ole Kniemeyer (1977- )

Page 91: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

Page 92: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

● Steuerung der Regelanwendung durch Kontrollstrukturen möglich

Page 93: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

● Steuerung der Regelanwendung durch Kontrollstrukturen möglich

Beispiel: Regeln für einen stochastischen Baum

Start ==> 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 ] );

Page 94: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

● Steuerung der Regelanwendung durch Kontrollstrukturen möglich

● parallele Regelanwendung

Page 95: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

● Steuerung der Regelanwendung durch Kontrollstrukturen möglich

● parallele Regelanwendung

● parallele Ausführung von Zuweisungen möglich

Page 96: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

● Steuerung der Regelanwendung durch Kontrollstrukturen möglich

● parallele Regelanwendung

● parallele Ausführung von Zuweisungen möglich

nochmal das Beispiel von Floyd:

Räuber-Beute-System, beschrieben durch Rneu = f(R, B), Bneu = g(R, B)

in XL korrekt:

R := f(R, B); B := g(R, B);

Page 97: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

● Steuerung der Regelanwendung durch Kontrollstrukturen möglich

● parallele Regelanwendung

● parallele Ausführung von Zuweisungen möglich

● mengenwertige Ausdrücke

Page 98: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Eigenschaften der Sprache XL:

● Knoten der Graphen sind Java-Objekte, z.B. Geometrie-Objekte

● Steuerung der Regelanwendung durch Kontrollstrukturen möglich

● parallele Regelanwendung

● parallele Ausführung von Zuweisungen möglich

● mengenwertige Ausdrücke

● Graph-Abfragen (queries) zur Analyse der aktuellen Struktur

Page 99: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Ein XL-Compiler wird zur Verfügung gestellt von der freien Software GroIMP (Growth-grammar related Interactive Modelling Platform)

http://www.grogra.de

dort auch Link auf Download-Seite

Page 100: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

4. Anwendungsbeispiele

Page 101: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

4. Anwendungsbeispiele

- realistische Darstellung eines Brettspiels

„Mensch ärgere dich nicht“

(Kniemeyer 2007,

AGTIVE'07 Tool Contest)

Page 102: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 103: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 104: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 105: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 106: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 107: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

.

Page 108: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 109: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 110: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 111: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?
Page 112: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

.

Page 113: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Spielzüge durch Regeln gesteuert

Page 114: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Spielzüge durch Regeln gesteuert

Figuren, Spielfelder etc. sind Objekte

Page 115: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Spielzüge durch Regeln gesteuert

Figuren, Spielfelder etc. sind Objekte

Prozesse sind imperativ programmiert, z.B. Raytracing für die realistische Darstellung des Spielfeldes

Page 116: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Regeln für Verhalten

Page 117: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Regeln für Verhalten

z.B. Schwarm-Organismen

„virtual birds“ = boids

Page 118: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Realisierung in XL leicht möglich (Hemmerling 2007)

Schwarm-Organismen

Regeln:

● orientiere dich zum Schwarmzentrum

● halte gleiche Richtung ein wie der Schwarm

● weiche nächstem Nachbar aus

wenn ein Leittier vorhanden ist:

● folge dem Leittier

● passe Geschwindigkeit der des Leittiers an

Page 119: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

zahlreiche Grafik-Anwendungen einfach realisierbar, z.B. virtuelles Wachstum entlang einer Oberfläche (regelgesteuert)

Bischof 2006

Page 120: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

5. Das VR-Paradigma

VR = Virtual Reality

interaktives Paradigma

Page 121: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

5. Das VR-Paradigma

VR = Virtual Reality

interaktives Paradigma

Erweiterung des objektorientierten Paradigmas

Vorstellung:Der Benutzer wird Teil der virtuellen Weltund erlebt die Objekte als real

Page 122: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

● Interaktivität

Page 123: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

● Interaktivität

● Immersion

Page 124: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

● Interaktivität

● Immersion

● virtuelle Raumzeit

Page 125: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

● Interaktivität

● Immersion

● virtuelle Raumzeit

● Identifikation mit einem Objekt der virtuellen Welt (Avatar)

Page 126: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Beispiel:

Virtual Forester (Lanwert 2007)

Einsatz geplant im E-Learning an der Fakultät für Forstwissenschaften und Waldökologie

(noch in der Experimentalphase)

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Page 127: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Virtual Forester:

● Bestandesbeschreibung auf Basis von VRML

● forstliche Eingriffe in den Bestand interaktiv möglich

● Multiuser-fähig (Client-Server-Prinzip)

● Kopplung mit Wachstumsmodell auf Server (z.Zt. in XL programmiertes Modell, austauschbar)

Page 128: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

Page 129: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

● Programmierparadigmen

Page 130: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

● Programmierparadigmen

● imperativ, objektorientiert, regelbasiert

Page 131: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

● Programmierparadigmen

● imperativ, objektorientiert, regelbasiert- regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten

Page 132: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

● Programmierparadigmen

● imperativ, objektorientiert, regelbasiert- regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten

● Sprache XL- vereint die drei Paradigmen

Page 133: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

● Programmierparadigmen

● imperativ, objektorientiert, regelbasiert- regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten

● Sprache XL- vereint die drei Paradigmen

- parallele Graph-Grammatiken (L-Systeme als Spezialfall), parallele Zuweisungen, Graph-Abfragen...

Page 134: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

● Programmierparadigmen

● imperativ, objektorientiert, regelbasiert- regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten

● Sprache XL- vereint die drei Paradigmen

- parallele Graph-Grammatiken (L-Systeme als Spezialfall), parallele Zuweisungen, Graph-Abfragen...

- vorteilhaft in der Ökologie (Interaktionen, Verhalten, Netzwerke, Strukturen und Funktionen...) und für Grafik-Modelle

Page 135: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. ZusammenfassungZusammenfassung

● Programmierparadigmen

● imperativ, objektorientiert, regelbasiert- regelbasiert: nützlich zur Programmierung regelmäßiger Strukturen und von Verhalten

● Sprache XL- vereint die drei Paradigmen

- parallele Graph-Grammatiken (L-Systeme als Spezialfall), parallele Zuweisungen, Graph-Abfragen...

- vorteilhaft in der Ökologie (Interaktionen, Verhalten, Netzwerke, Strukturen und Funktionen...) und für Grafik-Modelle

● zusätzlich: Virtual Reality - Paradigma

Page 136: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Weiterführendes Material

Literaturhinweise unter www.grogra.de

insbes.: W. K., Specification of morphological models with L-systems and relational growth grammars. IMAGE, 5 (2007), Themenheft; http://www-gs.informatik.tu-cottbus.de/ima_lsy.pdf

Buch:P. Prusinkiewicz / A. Lindenmayer: The Algorithmic Beauty of Plants. Springer, Berlin 1990; http://algorithmicbotany.org/papers/abop/abop.pdf

Tutorial, integriert in die Software GroIMP (Download unter www.grogra.de)

Publikationsseite des Lehrstuhls Grafische Systeme, BTU Cottbus: http://www-gs.informatik.tu-cottbus.de/deutsch/publ.htm

Page 137: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

1. Begriff "Programmierparadigma"2. Einige wichtige Programmierparadigmen3. Synthese: Die Sprache XL4. Anwendungsbeispiele5. Das VR-Paradigma6. Zusammenfassung

Diese Folien werden zur Verfügung gestellt unter der URL

http://www-gs.informatik.tu-cottbus.de/deutsch/ank.htm

BTU Cottbus (www.tu-cottbus.de)

- Fakultäten und Einrichtungen

- Fakultät 1

- „Die Fakultät“

- Lehrstuhl Grafische Systeme

- Announcements

Page 138: Welche Paradigmen der Programmierung braucht man für die Computergrafik  und für die Ökologie?

Danke für die Aufmerksamkeit!

(Buck-Sorlin 2007, mit GroIMP / XL)

http://www-gs.informatik.tu-cottbus.de/deutsch/ank.htm