Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Forschungszentrum caesar
Zusammenfassung der Vorwoche
Einführung in JavaScript II
der Universität Oldenburg
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
Regelbasierte Programmierung mit XL
Regelbasierte Programmierung mit XL
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Artifizielle Wachstumsprozesse Winfried Kurth Günter Barczik Reinhard Hemmerling Udo Bischof Lehrstuhl Grafische SystemeLehrstuhl Entwerfen Bauen im Bestand.
Artifizielle Wachstumsprozesse Winfried Kurth Günter Barczik Reinhard Hemmerling Lehrstuhl Grafische SystemeLehrstuhl Entwerfen Bauen im Bestand.
Artifizielle Wachstumsprozesse Ergänzung zu Teil 1 Winfried Kurth Günter Barczik Reinhard Hemmerling Lehrstuhl Grafische SystemeLehrstuhl Entwerfen Bauen.
Einführung in die Programmiersprache C 1
Informatik 1 Übung 2.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Starten der Entwicklungsumgebung (IDE)
PHP: Operatoren und Kontrollstrukturen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Diskrete Mathematik I Vorlesung 2 Arrays.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
 Präsentation transkript:

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

letztes Mal: einfache L-Systeme (Zeichenkettenersetzungssysteme) ihre Ausführung mit GroIMP einfache Verzweigungsmuster, modelliert mit L-Systemen

als nächstes: weitere L-System-Beispiele Verwendung von imperativem Code in XL-Programmen

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)

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 Parameterlisten Parameter 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) ==>....

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);

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.

Testen Sie die Beispiele sm09_b04.rgg Zwei Regelblöcke sm09_b05.rgg wechselständiges Wachstum sm09_b06.rgg gegenständiges Wachstum sm09_b07.rgg Farbgebung für einzelne Elemente durch imperativen Code sm09_b08.rgg Verwendung eigener Module sm09_b21.rgg Seitenzweig-Positionierung

Verwendung von imperativem Code in XL-Programmen Befehle wie Zuweisungen von Werten zu Variablen, Additionen, Funktionsausführungen, Ausgabe (Druckbefehle) usw. werden mit der gleichen Schreibweise wie in der Programmiersprache Java angegeben und in geschweifte Klammern {... } eingeschlossen. Beispiele: int i; // Deklaration einer ganzzahligen Variablen mit Namen i float a = 0.0; // Deklaration u. Initialisierung einer Gleitkomma-Var. int[] x = new int[20]; // Deklaration eines Arrays (Datenfeldes) // der Länge 20; Zugriff: x[0],..., x[19] float[] y = { 0.1, 0.2, 0.7, -1.4 }; // Deklaration und Initialisierung eines Arrays i = 25; // Zuweisung

Verwendung von imperativem Code (Fortsetzung) i++; // i wird um 1 erhöht i--; // i wird um 1 vermindert i += 5; // i wird um 5 erhöht i -= 5; // i wird um 5 vermindert i *= 2; // i wird verdoppelt i /= 3; // i wird gedrittelt n = m % a; // n wird der Rest von m bei ganzzahl. Division durch a zugew. x = Math.sqrt(2); // x wird die Quadratwurzel aus 2 zugewiesen if (x != 0) { y = 1/x; } // bedingte Zuweisung von 1/x an y while (i <= 10) { i++; } // Schleife: solange i 10 ist, // wird i um 1 erhöht for (i = 0; i < 100; i++) { x[i] = 2*i; } // imperative // for-Schleife if (i == 0) {... } // Test auf Gleichheit ( = wäre Zuweisung!)

Datentypen: int ganze Zahlen float Gleitkommazahlen double Gleitkommazahlen, doppelte Präzision char Zeichen (characters) void leerer Typ (für Funktionen, die nichts zurückgeben) mathematische Konstanten: Math.PI Math.E e logische Operatoren: && und || oder ! nicht

mathematische Funktionen: Math.abs Absolutbetrag Math.sqrt Quadratwurzel Math.acos Arcuscosinus Math.tan Tangens Math.asin Arcussinus Math.toDegrees Math.atan Arcustangens Math.toRadians Math.cos CosinusUmrechung Gradmaß Math.exp Exponentialfunktion e x Bogenmaß Math.log natürlicher Logarithmus Math.max Maximum zweier Zahlen Math.min Minimum zweier Zahlen Math.round Rundungsfunktion Math.sin Sinus

sm_progbsp01.rgg : schreibt die Zahlen von 1 bis 10 auf die GroIMP-Konsole protected void init() { int i; for (i=1; i<= 10; i++) println(i); println("Ende."); }

sm_progbsp02.rgg : schreibt ungerade Quadratzahlen protected void init() { int a, b; for (a = 1; a <= 10; a++) { b = a*a; if (b % 2 != 0) println(b); } println("Ende."); }

sm_progbsp03.rgg : schreibt die Fibonacci-Zahlen protected void init() { int i; int[] fibo = new int[20]; /* Array-Deklaration */ fibo[0] = fibo[1] = 1; for (i=2; i <= 19; i++) fibo[i] = fibo[i-1] + fibo[i-2]; for (i=0; i <= 19; i++) println(fibo[i]); println("Ende."); }

sm_progbsp04.rgg : Verwendung einer Funktion /* ein einfaches imperatives Programm: Eine selbstgeschriebene Funktion berechnet x 2 + 1; diese wird für x von 0 bis 1 in 0.1-Schritten ausgewertet. Man achte auf Rundungsfehler und auf die richtige Obergrenze für x. */ public float funktion(float x) { return x*x + 1; } protected void init() { float a = 0.0; /* Gleitkommazahl */ while (a <= ) { println(funktion(a)); /* wende Funktion an und gib aus */ a += 0.1; /* inkrementiere a */ } println("Ende."); }

Man teste die Beispiele sm09_b20.rgg Verwendung von Arrays sm09_b22.rgg for-Schleife für Seitenzweige

Hausaufgabe: Lesen Sie Chapter 1, Section 1.6 – 1.7 und 1.10/ im Buch The Algorithmic Beauty of Plants von P. Prusinkie- wicz und A. Lindenmayer (online verfügbar, siehe Literatur- seite zur Veranstaltung). (= S und 40-43).