Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Linda Stefanie Acker Geändert vor über 8 Jahren
1
Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2015 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 2. Vorlesung: 23. 4. 2015
2
letztes Mal: Modelldreieck für Pflanzenmodelle reine Strukturmodelle, Motivation 3 Ebenen der Strukturbeschreibung 2 Arten der statischen Beschreibung - tabellarisch (dtd-Format) - imperativ (turtle geometry) (noch nicht behandelt) Einstieg in GroIMP (Bedienung)
3
heute: GroIMP: Laden von dtd-Dateien erste Analysen von Verzweigungssystemen Programmierparadigmen Turtle-Geometrie Ausführung von Turtle-Geometrie-Befehlsfolgen mit GroIMP
4
Laden von dtd-Dateien in GroIMP File / Open: dtd-Datei wählen (öffnen) Verzweigungsstruktur erscheint in der 3D-Ansicht ggf. Kameraeinstellungen ändern Verändern der Datei und speichern Änderung wird im Display sichtbar
5
Einfache Analysen einige Möglichkeiten wurden aus der Vorgängersoftware GROGRA übernommen Panels / RGG Panels / GROGRA functions / Analysis dort: - list of all shoots (erzeugt komplette Liste) - elementary analysis - basic tree parameters - topological analysis (später mehr)
6
Der Begriff "Programmierparadigma" Paradigma: grundlegende Denkweise, beispielorientierte Vorstellung Paradigmen der Programmierung
7
Paradigma: "Beschreibt eine Menge von Theorien, Standards und Methoden, die gemeinsam einen Weg repräsentieren, Wissen zu organisieren" Thomas Kuhn 1970: The Structure of Scientific Revolutions
8
Paradigma: "Beschreibt eine Menge von Theorien, Standards und Methoden, die gemeinsam einen Weg repräsentieren, Wissen zu organisieren" Thomas Kuhn 1970: The Structure of Scientific Revolutions Paradigmenwechsel: schwierig. Revolution im Denken!
9
wurde aufgegriffen von Robert Floyd 1978: Turing Award Lecture "The Paradigms of Programming" Robert W. Floyd (1936-2001)
10
Welche Paradigmen werden nahegelegt durch Probleme...... bei der Simulation natürlicher Objekte ?... bei deren computergrafischer Darstellung ?
11
Ökologie:
12
Organismen
13
Ökologie: Organismen Aufbau beschreiben
14
Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Aufbau beschreiben
15
Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen
16
Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Prozesse Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen
17
Ökologie: Organismen Verhalten (unter bestimmten Bedingungen) Prozesse Aufbau beschreiben Gesetzmäßigkeiten (Regeln) bestimmen Ablauf berechnen
18
Grafisches System:
19
Objekte
20
Grafisches System: Objekte (mit Attributen)
21
Grafisches System: Objekte (mit Attributen) regelmäßige Strukturen
22
Grafisches System: Objekte (mit Attributen) regelmäßige Strukturen Prozesse
23
Einige wichtige Programmierparadigmen -für numerische Simulation von Prozessen: imperatives Paradigma
24
Einige wichtige Programmierparadigmen -für numerische Simulation von Prozessen: imperatives Paradigma (auch: von-Neumann-Paradigma, Kontrollfluss-Paradigma) John von Neumann (1903-1957)
25
"Befehls-Programmierung" Computer = ? imperativ:
26
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten.
27
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten (diese Veränderungen können Seiteneffekte haben).
28
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten. Programm = ?
29
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen).
30
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). Programmfindung: ?
31
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). Programmfindung: Elementare Einzelschritte finden und in passende, flexible Reihenfolge bringen.
32
"Befehls-Programmierung" Computer = Maschine zur Veränderung von Variablen- werten. Programm = Plan für den Berechnungsprozess mit Angabe der Befehle und des Kontrollflusses (z.B. Schleifen). Programmfindung: Elementare Einzelschritte finden und in passende, flexible Reihenfolge bringen. Programmiersprachen, die dieses Paradigma unterstützen: Fortran, Pascal, C,..., Teile von Java,...
33
Beispiel: x = 0; while (x < 100) x = x + 1; Inhalt der Variable x wird verändert Schleife legt Kontrollfluss fest
34
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)!
35
Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt
36
Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch R neu = f(R, B), B neu = g(R, B) Anfängerfehler beim Programmieren: for (i =... ) { R = f(R, B); B = g(R, B); }
37
Nachteil des imperativen Paradigmas: simultane, parallele Zuweisung wird nicht unterstützt Beispiel (Floyd 1978): Räuber-Beute-System, beschrieben durch R neu = f(R, B), B neu = g(R, B) Anfängerfehler beim Programmieren: for (i =... ) { R = f(R, B); B = g(R, B); }
38
Programmiersprachen, die das imperative Paradigma unterstützen: Fortran, Pascal, C,..., Teile von Java, Befehlssprache der Turtle-Geometrie
39
Turtle: zeichnende Schildkröte, die auf Befehle hört
40
Turtle: zeichnende Schildkröte, die auf Befehle hört
41
F0
43
F0 RU(90)
45
F0 RU(90) F0
47
F0 RU(90) F0 RU(90) LMul(0.5) F0
48
(später mehr)
49
zurück zum Beispiel: Objekte (mit Attributen)
50
Objektorientiertes Paradigma Computer = Umgebung für virtuelle Objekte Programm = Auflistung von (Objekt-) Klassen, d.h. allgemeiner Spezifikationen von Objekten, die zur Laufzeit des Programms (ggf. mehrfach) erschaffen und wieder vernichtet werden können und miteinander kommunizieren. Programmfindung: Spezifikation der Klassen (Daten und Methoden), die Objektstruktur und -verhalten festlegen. Programmiersprachen: Smalltalk, Simula, C++, Java,...
51
Beispiel: public class Auto extends Fahrzeug { public String marke; public int plaetze; public void anzeigen() { System.out.println("Das Auto ist ein " + marke); System.out.println("Es hat " + plaetze + "Sitze."); } typisch: Klassen ( Auto ) mit Daten ( marke, plaetze ) und Methoden ( anzeigen )
52
Vererbung von Attributen und Methoden von Ober- an Unterklassen Beispiel: public class Auto extends Fahrzeug { public String marke; public int plaetze; public void anzeigen() { System.out.println("Das Auto ist ein " + marke); System.out.println("Es hat " + plaetze + "Sitze."); } typisch: Klassen ( Auto ) mit Daten ( marke, plaetze ) und Methoden ( anzeigen )
53
Objekthierarchien sind auch in der Biologie sinnvoll zum Beispiel: Organ BlattBlüteInternodiumWurzelsegment Laub- blatt NadelGrob- WS Fein- WS
54
regelmäßige Strukturen
55
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist.
56
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben.
57
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben. Programm = Menge von Transformationsregeln
58
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben. Programm = Menge von Transformationsregeln Programmfindung: Spezifikation der Regeln
59
Regelbasiertes Paradigma Computer = Transformationsmaschine für Strukturen Es gibt eine aktuelle Struktur, die solange transformiert wird, wie dies möglich ist. Arbeitsprozess: Such- und Anwendungsprozess. matching: Suchen einer passenden Regel, rewriting: Anwendung der Regel, um die Struktur umzuschreiben. Programm = Menge von Transformationsregeln Programmfindung: Spezifikation der Regeln Programmiersprachen: L-System-Sprachen, KI-Sprachen, Prolog,...
60
Regelsysteme zur Ersetzung von Zeichenketten Beispiel: L-Systeme (Lindenmayer-Systeme) (in Kürze mehr)
61
ebenfalls regelbasierter Mechanismus: Graph-Grammatiken
62
ebenfalls regelbasierter Mechanismus: Graph-Grammatiken Regel:
63
ebenfalls regelbasierter Mechanismus: Graph-Grammatiken Regel: Anwendung:
64
Zusammenfassung: Programmierparadigmen
65
Zusammenfassung: Programmierparadigmen ● imperativ
66
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie
67
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert
68
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert
69
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert - L-Systeme - Graph-Grammatiken
70
Zusammenfassung: Programmierparadigmen ● imperativ - Veränderung von Variablen - Turtle-Geometrie ● objektorientiert ● regelbasiert - L-Systeme - Graph-Grammatiken ● weitere: funktional; nebenläufig; chemisch...
71
Anwendungsschwerpunkte: prozedural: Numerik, z.B. Lösen von Gleichungssystemen Bsp. Photosynthese; Baumwasserfluss (Darcy-Gesetz = DGL, diskretisiert, numerisches Lösungsverfahren) regelbasiert: Entwicklung verzweigter Strukturen (lokal 1-D) Bsp. Pflanzen logische Abhängigkeiten Bsp. Wissensbasierte Systeme objektorientiert: Ensembles interagierender Objekte Bsp. Tierindividuen
72
Synthese: Die Sprache XL „eXtended L-system language“ Programmiersprache, die parallele Graph- Grammatiken (RGG) einfach verfügbar macht
73
imperativobjektorientiertregelbasiert Java XL
74
F0 RU(90) F0 RU(90) LMul(0.5) F0 Turtle-Geometrie
75
(Turtle geometry, "Schildkrötengeometrie")
77
Turtle-Geometrie
82
Turtle-Geometrie in GroIMP
83
Wie man eine Turtle-Befehlsfolge mit GroIMP ausführt schreiben Sie in eine GroIMP-Projektdatei (oder in eine Datei mit Endung.rgg ): protected void init() [ Axiom ==> Turtle-Befehlsfolge ]
84
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
85
Wiederholung von Abschnitten der Zeichenkette möglich mit " for " z.B. for ((1:3)) ( A B C ) liefert A B C A B C A B C
86
was ist das Ergebnis der Interpretation von L(10) for ((1:6)) ( F0 RU(90) LMul(0.8) ) ?
87
L(10) for ((1:6)) ( F0 RU(90) LMul(0.8) )
95
anderes Beispiel: for ((1:20)) ( for ((1:36)) ( F0 RU(165) F0 RU(165) ) RU(270) )
96
anderes Beispiel: for ((1:20)) ( for ((1:36)) ( F0 RU(165) F0 RU(165) ) RU(270) )
97
Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen
98
Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen head left up
99
Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen head left up
100
Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen RH RL RU
101
3D-Befehle: RU(45) Drehung der turtle um die "up"-Achse um 45° RL(... ), RH(... ) analog um "left" und "head"-Achse up-, left- und head-Achse bilden ein rechtwinkliges, räumliches Koordinatensystem, das von der turtle mitgeführt wird RV(x) Rotation "nach unten" mit durch x vorgegebener Stärke RG Rotation ganz nach unten (Richtung (0, 0, -1))
103
Beispiel: L(100) D(3) RU(-90) F(50) RU(90) M0 RU(90) D(10) F0 F0 D(3) RU(90) F0 F0 RU(90) F(150) RU(90) F(140) RU(90) M(30) F(30) M(30) F(30) RU(120) M0 Sphere(15) erzeugt was ist das Ergebnis der Interpretation der Zeichenkette L(10) F0 RU(45) F0 RU(45) LMul(0.5) F0 M0 F0 ?
104
Verzweigungen: Realisierung mit Speicher-Befehlen [ lege aktuellen Zustand auf Speicher ("Ablage", Stack) ] nimm obersten Zustand von der Ablage und mache diesen zum aktuellen Zustand (damit: Ende der Verzweigung)
105
Verzweigungen: Realisierung mit Speicher-Befehlen [ lege aktuellen Zustand auf Speicher ("Ablage", Stack) ] nimm obersten Zustand von der Ablage und mache diesen zum aktuellen Zustand (damit: Ende der Verzweigung) F0 [ RU(-40) F0 ] RU(20) DMul(2) F0
106
Verzweigungen: Realisierung mit Speicher-Befehlen [ lege aktuellen Zustand auf Speicher ("Ablage", Stack) ] nimm obersten Zustand von der Ablage und mache diesen zum aktuellen Zustand (damit: Ende der Verzweigung) F0 [ RU(-40) F0 ] RU(20) DMul(2) F0
107
Mit welchen Turtle-Befehlsfolgen erzeugt man die folgenden Strukturen ?
108
Hausaufgabe zum nächsten Mal: Bearbeiten Sie im ILIAS-Lernmodul „Einführung in GroIMP“ (verfügbar über StudIP): - Einführung - Lektionen 1 - 4 - Lektion 23 (beachten Sie, dass das Laden von dtd-Dateien in der aktuellen GroIMP-Version einfacher ist als dort dargestellt)
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.