Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Erhard Storjohann Geändert vor über 11 Jahren
1
Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 2. Vorlesung: 26. 4. 2012
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 die Software GroIMP
3
heute: 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") befehlsgesteuertes, lokales Navigieren im 2D- oder 3D- Raum ( Abelson & diSessa 1982; vgl. Programmier- sprache "LOGO") "Turtle": Zeichen- oder Konstruktionsgerät (virtuell) - speichert (grafische und nicht-grafische) Informationen - mit einem Zustandsspeicher assoziiert (wichtig für Verzweigungen) - aktueller Zustand der Turtle enthält z.B. Information über aktuelle Liniendicke, Schrittweite, Farbe, weitere Eigenschaften des als nächstes zu konstruierenden Objekts
76
Befehle (Auswahl): F0 "Forward", mit Konstruktion eines Elements (Linienstück, Segment, Gebäudetrakt...), benutzt wird die aktuelle Schrittweite für die Länge (die Null steht für "keine explizite Längenfestlegung") M0 forward ohne Konstruktion (Move-Befehl) L(x) ändere die aktuelle Schrittweite (Länge) zu x LAdd(x) inkrementiere die aktuelle Schrittweite um x LMul(x) multipliziere die aktuelle Schrittweite mit x D(x), DAdd(x), DMul(x) analog für die aktuelle Dicke
77
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 was ist das Ergebnis der Interpretation von L(10) for ((1:6)) ( F0 RU(90) LMul(0.8) ) ?
78
L(10) for ((1:6)) ( F0 RU(90) LMul(0.8) )
79
anderes Beispiel: for ((1:20)) ( for ((1:36)) ( F0 RU(165) F0 RU(165) ) RU(270) )
80
anderes Beispiel: for ((1:20)) ( for ((1:36)) ( F0 RU(165) F0 RU(165) ) RU(270) )
81
Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen
82
Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen head left up
83
Erweiterung auf 3D-Grafik: Turtle-Rotationen um 3 Achsen RH RL RU
84
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))
85
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 ?
86
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)
87
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(-20) F0 ] RU(20) DMul(2) F0
88
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 ]
89
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
90
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
© 2025 SlidePlayer.org Inc.
All rights reserved.