Diana Lange. Generative Gestaltung Die Processing Bibliothek

Ähnliche Dokumente
Das vorliegende Skript ist aktualisiert für die Processing Version 1.1 von März 2010.

Graphic Coding. Klausur. 9. Februar Kurs A

Diana Lange. Generative Gestaltung Operatoren

Grafiken programmieren mit Processing

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Diana Lange. GENERATIVE GESTALTUNG Arten des Zufalls

Grundlagen Programmierung

Diana Lange. GENERATIVE GESTALTUNG Komplexe Datentypen: PShape

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

4 Codierung nach Viginere (Lösung)

GUI Programmierung mit GTK

Übungsblatt 3: Algorithmen in Java & Grammatiken

Objective-C CheatSheet

Einbindung der Tastatur

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

5.4 Klassen und Objekte

Methode, wird einmalig zu Beginn des Programms ausgeführt. Dient zum Setzen von Anfangswerten, bevor der erste Aufruf von draw() erfolgt.

Anwendung und Programmierung von Mikrocontrollern. Anwendung und Programmierung von Mikrocontrollern

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Erste Schritte mit HG 2

Programmierung Nibo 2 Teil 3 Display. * by nicaisystems

Universität Paderborn Fakultät für Naturwissenschaften - Physikalisches Praktikum Versuche mit Microcontroller-System

Programmierkurs Java

Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Einführung in die Programmierung

Erwin Grüner

Numerische Datentypen. Simon Weidmann

Java Projekt: Tic Tac Toe + GUI

Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff

Kurzanleitung Zeichnungsmodul ACD Chemsketch 11.0 Freeware

floatchart Flußdiagramme in TEX/L A TEX

Robert Hecht - Windischeschenbach. Hechtinator. Aktuelle Version: Datum: 5. Juni Erstellt von Robert Hecht

1 Vom Problem zum Programm

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Click-N-Type. Eine kurze Anleitung. Kommhelp e.v Kontakt. Spendenkonto. Vereinsregister. Telefon: +49. (0) kommhelp e. V.

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

GUI Programmierung in Java

Qt-Projekte mit Visual Studio 2005

12 Datenbank-Einsatz VarioData

1 Visual Basic for Application mit Excel (VBA)

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Objektorientierte Programmierung mit Java

Neben dem Symbol Entwurfsmodus ist das Symbol Befehlschaltfläche zu sehen.

Objektorientiertes Programmieren für Ingenieure

32.4 Anpassen von Menüs und Symbolleisten 795i

Eine Einführung in C-Funktionen

Tutorium Java Ein Überblick. Helge Janicke

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Interrupt-Programmierung

DI-Plot. Bedienerhandbuch

Java programmieren: Konsolen-Programme

Symbollinientypen einfacher erstellen

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Erste Schritte mit Sfirm32 und itan

In dieser Übung werden Sie auf den UMN-WebServer der FH zugreifen und die WMS Requests GetCapabilities und GetMap anwenden.

Inhalt: Version 1.7.5

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN

Observer-Pattern (Java vs..net vs. Qt) Seminar Software-Entwurf Tim Rademacher

Scalable Vector Graphics (SVG)

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Dokumentation: wi://googlemaps

Programmierung eines GIMP-Plugin

Erstellen von x-y-diagrammen in OpenOffice.calc

Computeranwendung und Programmierung (CuP)

Propädeutikum zur Programmierung

Von: Sven Weltring, Viola Berlage, Pascal Küterlucks, Maik Merscher

19. Mai 2015 L A TEX. Grafiken. Prof. Dr. Alexander Braun // Wissenschaftliche Texte mit LaTeX // WS 2014/15

Professionelle Seminare im Bereich MS-Office

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Javakurs für Anfänger

SQL-Befehlsliste. Vereinbarung über die Schreibweise

ArduSmartPilot: Android Programmierung mit Processing

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Textverarbeitung Textentwurf 2. Texterfassung 3. Textumformung 4. Textgestaltung 5. Textverwendung

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

vogle A very ordinary graphics learning enviroment Kommunikation mit anderen Rechnern

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Grafischer Tischeplan

Testen mit JUnit. Motivation

UpToNet Workflow Workflow-Designer und WebClient Anwendung

C++ Tutorial: Timer 1

R&S Liegenschaftsbewertung Erste Schritte. Erste Schritte. Liegenschaftsbewertung

Die altgriechische Schrift auf dem Computer

Einführung in die Programmierung für Wirtschaftsinformatik

Aufgaben der Klasse FTI33 HTML: 1. Durch welchen Befehl wird ein Hyperlink in einem Bestimmten Frame angezeigt?

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6

Übungspaket 19 Programmieren eigener Funktionen

Anleitung SnackTag Generator

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Deklarationen in C. Prof. Dr. Margarita Esponda

Was ist SVG? Inhalt: Allgemeines zu SVG Besondere Merkmale Vor- und Nachteile Dateiformat Standardobjekte Koordinatensystem Beispiele Links

Transkript:

Diana Lange Generative Gestaltung Die Processing Bibliothek

Inhalt Diese Foliensammlung gibt eine Einsicht über processingspezifischen Anweisungen und Variablen.

Einführung Alle Elemente, die wir dank Processing nutzen können, sind über Bezeichner (Namen) benutzbar. Diese Namen wurden von den Processing-Entwicklern festgelegt. Über den Aufruf des Names können wir eine vordefinierte Funktionalität oder einen bestimmten Wert abfragen. Unter den Processingelementen gibt es zwei elementare Kategorien die wir unterscheiden können: - Funktionen - (System-) Variablen

Einführung Alle Elemente, die wir dank Processing nutzen können, sind über Bezeichner (Namen) benutzbar. Diese Namen wurden von den Processing-Entwicklern festgelegt. Über den Aufruf des Names können wir eine vordefinierte Funktionalität oder einen bestimmten Wert abfragen. Unter den Processingelementen gibt es zwei elementare Kategorien die wir unterscheiden können: - Funktionen - (System-) Variablen Funktionen (alternative Bezeichnung: Methode) sind immer Elemente, die etwas machen bzw. durchführen. Zum Beispiel die Funktion ellipse() zeichnet eine Ellipse. Wie genau sie das machen, ist für uns nicht einsehbar (eine Art Black Box ). Ein Sonderfall sind die Eventfunktionen. Variablen sind immer Elemente, die irgendwelche Informationen beinhalten (z.b. Zahlenwerte). Variablen machen nie etwas.

Einführung Die Unterscheidung in Anweisung und Variablen sind auch formal erkennbar. Bsp.: framerate(20); > setzt die Bildrate auf 20 frames / sekunde > macht etwas > Funktion framerate > beinhaltet eine Zahl, mit der tatsächlich erreichten Bildrate

einführung Die Unterscheidung in Anweisung und Variablen sind auch formal erkennbar. Bsp.: framerate(20); > setzt die Bildrate auf 20 frames / sekunde > macht etwas > Anweisung framerate > beinhaltet eine Zahl, mit der tatsächlich erreichten Bildrate > Variable Gleich lautender Bezeichner Funktionen haben nach dem Bezeichner immer einfache Klammern. Zwischen den Klammern können optional Werte stehen. Nach dem Bezeichner von Variablen folgt nie etwas. GENERATIVE GESTALTUNG. NATURE. WS 2015-2016. DIANA LANGE. HAWK@DIANA-LANGE.DE

Arten von Anweisungen Innerhalb der Funktionen gibt es noch einmal zwei Unterkategorien. Die erste Unterkategorie macht einfach etwas (Kein Rückgabewert). Bsp.: ellipse(x, y, breite, hoehe); nostroke();

Arten von Anweisungen Innerhalb der Funktionen gibt es noch einmal zwei Unterkategorien. Die erste Unterkategorie macht einfach etwas (Kein Rückgabewert). Bsp.: ellipse(x, y, breite, hoehe); nostroke(); Die zweite Unterkategorie macht etwas und teilt uns das Ergebnis in Form von einem Wert, der zurückgegeben wird, mit. Das Ergebnis bezeichnen wir als Rückgabewert. Bsp.: random(100, 500); noise();

Arten von Anweisungen Innerhalb der Funktionen gibt es noch einmal zwei Unterkategorien. Die erste Unterkategorie macht einfach etwas (Kein Rückgabewert). Bsp.: ellipse(x, y, breite, hoehe); nostroke(); Die zweite Unterkategorie macht etwas und teilt uns das Ergebnis in Form von einem Wert, der zurückgegeben wird, mit. Das Ergebnis bezeichnen wir als Rückgabewert. Bsp.: random(100, 500); noise(); Dadurch, dass diese Anweisungen uns das Ergebnis ihres Tuns zurückgeben, können wir dieses Ergebnis in Variablen ablegen. Bsp.: float zufallszahl = random(100, 500); In beiden Kategorien gibt es Anweisungen, die Werte benötigen (Parameterwerte werden in den Klammern geschrieben) und welche, die keine Werte benötigen (Klammern bleiben leer).

Anweisungen Ohne Rückgabe Grafische Elemente Bedeutung po(x, y); line(x1, y1, x2, y2); ellipse(x, y, breite, hoehe); rect(x, y, breite, hoehe); triangle(x1, y1, x2, y2, x3, y3); Zeichnet ein Punkt Zeichnet eine Linie Zeichnet eine Ellipse Zeichnet ein Rechteck Zeichnet ein Dreieck beginshape(); vertex(x, y); curvevertex(x, y); endshape(); endshape(close); Beginnt eine Freiform ( = Form, aus beliebig vielen Punkten) Fügt der Freiform einen eckigen Pfadpunkt hinzu Fügt der Freiform einen kurvigen Pfadpunkt hinzu Die Pfadpunkte müssen zwischen beginshape() und endshape() hinzugefügt werden Beendet die Freiform Beendet die Freiform und schließt die Form

Anweisungen Ohne Rückgabe Programmkontrolle & Helfer loop(); // Voreinstellung Bedeutung Schaltet das Loopen von draw() ein noloop(); Schaltet das Loopen von draw() aus framerate(bildrate); Setzt die Zielbildrate redraw(); draw() wird einmal ausgeführt (sinnvoll bei noloop()) prln(ausgabe); Schreibt die Ausgabe in die Konsole. Ausgabe können z.b. Zahlenwerte, Texte, Variablen, usw. sein smooth(); // Voreinstellung Schaltet die Kantenglättung an (Gutes Bild, Langsames Rendering) nosmooth(); Schaltet die Kantenglättung aus (Kantiges Bild, Schnelles Rendering) saveframe(stringdateipfad); Speichert eine Pixel-Bilddatei (.png,,.jpg,.tif) unter dem angegebenen Pfad

Anweisungen Mit Rückgabe Rückgabe float random(min, max); Bedeutung Generiert eine Zufallszahl zwischen min und max min und max sind Zahlenwerte ( oder float) color color(farbwerte); Berechnet einen Farbwert aus den verschiedenen Farbkanälen Hier sind die selben angaben möglich, wie bei fill() und stroke()

anweisungen mit rückgabe Rückgabe fl o a t random(min, max); Bedeutung Generiert eine Zufallszahl zwischen min und max min und max sind Zahlenwerte ( oder float) color color(farbwerte); Berechnet einen Farbwert aus den verschiedenen Farbkanälen Hier sind die selben angaben möglich, wie bei fill() und stroke() Beispiel: color grau = color(125); color farbe = color(125, 15, 0); color hexafarbe = color(#ff0000, 120); background(grau); fi l l (hexafarbe); GENERATIVE GESTALTUNG. NATURE. WS 2015-2016. DIANA LANGE. HAWK@DIANA-LANGE.DE

Anweisungen Mit Rückgabe Computerzeit Rückgabe year(); month(); Die hier gezeigten Funktionen geben den Zahlenwert der aktuellen Zeit (Jahr, Monat, Tag,...) zurück. Grundlage dafür ist das auf dem eigenen Rechner eingestellte Datum. day(); hour(); minute(); second();

anweisungen mit rückgabe computerzeit Rückgabe year(); month(); Die hier gezeigten Funktionen geben den Zahlenwert der aktuellen Zeit (Jahr, Monat, Tag,...) zurück. Grundlage dafür ist das auf dem eigenen Rechner eingestellte Datum. day(); hour(); minute(); second(); Typische Verwendung - Generierung von Zeitstempeln für die eindeutige Benennung von Dateien: String time = ""; time = time + year(); time = time + month(); time = time + day(); time = time + hour(); time = time + minute(); time = time + second(); saveframe("export/" + time + ".png"); GENERATIVE GESTALTUNG. NATURE. WS 2015-2016. DIANA LANGE. HAWK@DIANA-LANGE.DE

SonderFall Eventfunktionen Eventfunktionen sind auch Funktionen deren Name (Bezeichner) auch von Processing vordefiniert wurde. Im Gegensatz zu den anderen Funktionen werden sie aber (1) Automatisch beim Ereten eines bestimmten Ereignisses ausgeführt.und: (2) Was sie genau machen sollen - das bestimmen wir selber! void setup() { /* Inhalt von setup */} void draw() { /* Inhalt von draw */ } void mousepressed() { /* Inhalt von mousepressed */ } void mousereleased() { /* Inhalt von mousereleased */ } void mousemoved() { /* Inhalt von mousemoved */ } void mousedragged() { /* Inhalt von mousedragged */ } void keypressed() { /* Inhalt von keypressed */ } void keyreleased() { /* Inhalt von keyreleased */ }

Variablen Die folgenden Variablen müssen wir nicht mehr selbst definieren oder initalisieren. Sie werden von Processing bereit gestellt und auch automaisch mit (sinnvollen) Werten belegt und aktuallisiert. width height Typ Bedeutung Breite des Ausgabefensters Höhe des Ausgabefensters framerate framecount float Erreichte Bildrate Anzahl der Durchläufe von draw() mousex mousey X-Position der Maus im aktuellen Frame Y-Position der Maus im aktuellen Frame pmousex pmousey X-Position der Maus im vorhergehenden Frame Y-Position der Maus im vorhergehenden Frame

Variablen key Typ char Bedeutung Zeichen der Taste, die zuletzt gedrückt wurde mousebutton Maustaste, die zuletzt gedrückt wurde mousepressed keypressed boolean boolean true wenn Maus gedrückt, sonst false (Nicht zu verwechseln mit der gleichnamigen Evenfunktion mousepressed() ) true wenn Taste gedrückt, sonst false (Nicht zu verwechseln mit der gleichnamigen Evenfunktion keypressed() ) Diese Variablen auf dieser Folie werden erst im Kontext der Fallunterscheidungen eressant und wurden hier nur der Vollständigkeit halber mit aufgeführt.