Workshop Grafik-Progammiersprache Processing

Ähnliche Dokumente
Arbeitsblatt 6: Programmierung geometrischer Figuren

Bru ckenkurs Programmieren

Eine schnelle Processing-Einführung. von Thomas Rau

PROCESSING SCHUBLADEN UND ZEICHEN. Created by Michael Kirsch & Beat Rossmy

Diana Lange. Generative Gestaltung Die Processing Bibliothek

PROCESSING STRUKTUR UND INPUT. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK. Created by Michael Kirsch & Beat Rossmy

Processing Info zu Variablen und Bedingungen

Mit einem Doppelklick auf das Programmsymbol startet Ihr die Programmierumgebung:

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

Objektorientierte Programmierung

Bru ckenkurs Programmieren

TAG 1: EINSTIEG, PROCESSING VARIABLEN UND VERZWEIGUNGEN Brückenkurs Programmierung WiSe 16/17

Programmieren Übung! Meine ersten Schritte als ProgrammiererIn! Prolog 2014 Stefan Podlipnig, TU Wien

Graphic Coding. Klausur. 9. Februar Kurs A

PROCESSING KLASSEN UND OBJEKTE. Created by Michael Kirsch & Beat Rossmy

Für die Arbeit mit Pygame werden wird die Umgebung PortablePython Version 2.7.x verwenden.

Schleifen: Immer wieder dasselbe tun

Girls Day 2017 Programmierung

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Definitionen/Vorarbeit zum Thema Java

Programmieren lernen mit Visual Basic

Ideen und Konzepte der Informatik

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2018

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 6

Algorithmen und ihre Programmierung

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

Erste Java-Programme (Scopes und Rekursion)

Javakurs für Anfänger

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Befehlsreferenz. Christopher Schölzel Brückenkurs Programmierung. Befehl Beispiel Beschreibung Sketchsteuerung

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Bei jedem Arduino-Projekt muss man ein Grundgerüst "bauen". Das sieht dann so aus:

Aufgabe Total Punkte

Multimedia-Programmierung Fragestunde zur Klausur

PROCESSING ELTERN UND KINDER. Created by Michael Kirsch & Beat Rossmy

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

4 Schleifen -= Entstanden unter Excel 2003 =-

Kapitel 1: Die ersten Schritte 1

Einführung in die Programmierung für NF. Übung

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Programmieren! Meine ersten Schritte als ProgrammiererIn! Prolog 2014 Stefan Podlipnig, TU Wien

Brandbook. How to use our logo, our icon and the QR-Codes Wie verwendet Sie unser Logo, Icon und die QR-Codes. Version 1.0.1

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Einführung in die Programmierung mit VBA

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Handbuch Programmieren für Kinder

oder

Informatiktag MINT MOOCs am Beispiel Programmieren mit Processing. Gerald Futschek 28. September 2017

Übungszettel 2a - Python

Actionscript Kleine Programme Fragen & Aufgaben

Grundlagen der Theoretischen Informatik: Übung 10

Weiterführende Entwicklungen

Kurze Bedienungsanleitung für den Java-Editor

Vorkurs Informatik WiSe 16/17

Mächtigkeit von WHILE-Programmen

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

BASIC-Tiger Starter Kit. Tel: +49 (241) Fax: +49 (241)

Der CodeBug. A) Erste Schritte. 1) Einleitung

In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es.

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Girls Day. Einführung Mikrocontroller,

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Javakurs für Anfänger

Programmieren mit Python

PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK. Created by Michael Kirsch & Beat Rossmy

Vorkurs Informatik WiSe 17/18

Arduino und Amateurfunk (1)

Arduino für FunkAmateure

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

REXX. Was ist REXX. Scriptsprache für viele Plattformen Erste Schritte F. Hodel os2.a-net.ch

Programmiersprache. Emily & rica

Eine kleine Befehlssammlung für Java Teil1

Diana Lange. GENERATIVE GESTALTUNG Komplexe Datentypen: PShape

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Grundlagen der Programmierung

Transkript:

Workshop Grafik-Progammiersprache Processing

Agenda: Willkommen Processing.org Generative Gestaltung Erstes selbst programmiertes Beispiel Interaktive Beispiele

Willkommen zum Workshop Grafik-Progammiersprache Processing Christian Schmid Bühler eidg.dipl. Wirtschaftsinformatiker & Software Engineer IPMA certified Projectmanager & Assessor cschmid@ggaweb.ch www.krittapong.com Meine Ziele: Kurzüberblick geben zu: - Software Engineering Ansätze zu erläutern - Einblick in das Thema Generative Gestaltung zu geben - Ein Quell der Inspiration für neue Möglichkeiten Design by code in Eurem Umfeld zu bieten - Networking www.projectionmapping.ch

Processing: 2001 durch Ben Fry und Casea Rea im M.I.T. Media Lab entstanden, mit der Absicht, die Grundlagen von Programmierung v.a. Gestalter und Designer zu vermitteln, mit instantem visuellen Feedback für die Anwender. Ben Fry und Casea Real orientierten sich in Bezug auf die Syntax eng an Basic und dem visuellen Feedback eng an LOGO. In den letzten 14 Jahren entwickelte sich Processing, mit all den zusätzlich erstellten Libraries, zu einer professionell genutzten Programmiersprache. https://www.processing.org/exhibition/ https://www.processing.org/reference/

Generative Gestaltung: Generative art refers to any art practice where the artist uses a system, such as a set of natural language rules, a computer program, a machine, or other procedural invention, which is set into motion with some degree of autonomy contributing to or resulting in a completed work of art. http://philipgalanter.com/downloads/ga2003_what_is_genart.pdf

Generative Gestaltung: Nutzung von Algorithmen um etwas Visuelles zu kreieren Ein Zusammenspiel zwischen dem Künstler und einem autonomen System Treffen einer nicht vorherbestimmten Auswahl von Resultaten aus einem deterministischen Prozess Finden der Balance zwischen Ordnung und Chaos Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten. [1] Somit können sie zur Ausführung in einem Computerprogramm implementiert, aber auch in menschlicher Sprache formuliert werden. Bei der Problemlösung wird eine bestimmte Eingabe in eine bestimmte Ausgabe überführt.

Generative Gestaltung: http://www.krittapong.com/stills.html

Generative Gestaltung: http://www.krittapong.com/stills.html

Generative Gestaltung: http://www.krittapong.com/stills.html

Generative Gestaltung: https://gallery.mailchimp.com/3dcb01956ba9dbf764b2437c1/files/pool_einladung_forumz.pdf http://www.internauta.ch

Generative Gestaltung:

Generative Gestaltung: www.projectionmapping.ch

Generative Gestaltung: www.projectionmapping.ch

Generative Gestaltung: http://www.internauta.ch/site/referenzen/freie_arbeiten/eb-universum.html

Generative Gestaltung:

Generative Gestaltung: https://vimeo.com/63507064 https://youtu.be/gxxlndf7ebm

PDE: Processing Development Environment Run Stop Neuer Sketch Öffnen Sketch Speichern Sketch Sketch Name Die Bühne Texteditor: Hier wird der Programm- Code geschrieben Message area Console

Mein erstes Processing Programm: void setup() { size(480, 120); } void draw() { if (mousepressed == true) { fill(0); } else { fill(255); } ellipse(mousex, mousey, 80, 80); } Tastatur-Befehl für geschweifte Klammer auf Mac: {: alt-8 }: alt-9

Mein erstes Processing Programm:

Mein erstes Processing Programm: Vorbereitung einmalig Ausführung Endlos- Schleife void setup() { size(480, 120); } void draw() { if (mousepressed == true) { fill(0); } else { fill(255); } ellipse(mousex, mousey, 80, 80); }

Mein erstes Processing Programm: Vorbereitung einmalig void setup() { size(480, 120); } Vorbereitung Die Grösse des Ausgabe-Fenster: 480 Pixel breit, 120 Pixel hoch Ausführung Endlos- Schleife void draw() { if (mousepressed == true ) { fill(0); } else { ansonsten fill(255); } ellipse(mousex, mousey, 80, 80); } Zeichne auf das Ausgaben-Fenster folgendes ist die Füll-Farbe Schwarz = 0 ist die Füll-Farbe Weiss = 255 Falls die Mausetaste gedrückt wird Zeichne eine Ellipse an der Mause - X und an der Maus Y Position mit den Durchmesser 80 Pixel

Mein erstes Processing Programm: void setup() { } Aufgaben, welche nur 1x im Programm-Ablauf ausgeführt werden size(x,y); Die Grösse des Ausgabe-Fenster: x Pixel breit, y Pixel hoch 0,0 X Y 100,100

Mein erstes Processing Programm: void draw() { } Draw - Loop: Hierdrin befinden sich die Programm-Instruktionen, welche Inhalt berechnen, die im Ausgabefenster zu sehen sind. Der Loop läuft solange, bis er durch eine User-Aktion, Programm-Instruktion oder Programm-Fehler abgebrochen, bzw. gestoppt wird. if (mousepressed == true) { fill(0); } else { fill(255); } Bedingung: Falls Bedingung zutrifft, dann führe folgende(r) Progammschritt(e) aus ansonsten führe folgende(r) Programmschritt(e) aus

Mein erstes Processing Programm: mousepressed Ereignis: Maus-Tasten-Druck fill(0) Funktion: Füllung eines Grafik-Element: 0 = Schwarz 255 = Weiss fill(255) mousex mousey Variable: Maus - Cursor X - Position Variable: Maus - Cursor Y - Position ellipse(x-position, Y-Position, Breite, Höhe);

Mein erstes Processing Programm: Extended version V1

Mein erstes Processing Programm: Extended version // Dies ist mein erstes Processing - Programm // 26.08.2015 Christian Schmid Bühler cschmid@ggaweb.ch /* An der Mausposition gezeichnete Kreise */ Kommentare: Einzeilig durch // definiert Über mehrere Zeilen mit /* (Start Kommentare) bis */ (End Kommentare) definiert saveframe("kreise-####.png"); saveframe Funktion: Ein Bild mit Endung png (auch z.b. jpg etc. möglich), wird abgespeichert. Die #### bedeuten eine 4-stellige Laufnummer des aktuellen Frames. println("bild erfolgreich abgespeichert"); println Funktion: Der Text innerhalb der Anführungs- bzw. Schlusszeichen wird in der Konsole ausgegeben. Tastatur-Befehl für Gartenhag auf Mac: #: alt-3

Mein erstes Processing Programm: Extended version V2

Mein erstes Processing Programm: Extended version nostroke(); nostroke Funktion: Grafik-Objekt hat keine Umrandung stroke(255); stroke Funktion: Grafik-Objekt hat Umrandung mit der Farbe Schwarz bis Weiss (0-255), bzw. Rot, Grün, Blau (0-255) strokeweight(5); strokeweight Funktion: Breite der Umrandung des Grafik-Objekt fill(255,0,0); fill - Funktion: Füllung eines Grafik-Element: Rot (255), Grün (0), Blau (0) nofill(); nofill Funktion: Keine Füllung des Grafik Objekts rect(x-position, Y-Position, Breite, Höhe);

Mein erstes Processing Programm: Extended version V3

Mein erstes Processing Programm: Extended version float Rot = 0; Definition der Variable Rot, initiert mit dem Wert 0 float Gruen = 0; Definition der Variable Gruen, initiert mit dem Wert 0 float Blau = 0; Definition der Variable Blau, initiert mit dem Wert 0 background(0); Der Hintergrund des Ausgabefenster ist Schwarz (0) width height Wert der Breite des Ausgabefenster Wert der Höhe des Ausgabefenster map(mousex, 0, width, 0, 255); 0 Der Wert der mousex-position wird im Verhältnis von 0 bis zu der Breite des Ausgabefensters umgerechnet in das Werteverhältnis 0-255 width = 600 0 255 Rot = map(mousex, 0, width, 0, 255); Der berechnete Wert wird der Variable Rot zugewiesen fill(rot,gruen,blau); Die realtime berechneten Werte für Rot, Grün und Blau werden als Füllfarbe genutzt