• Keine Ergebnisse gefunden

PROCESSING PROCESSING

N/A
N/A
Protected

Academic year: 2022

Aktie "PROCESSING PROCESSING"

Copied!
16
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

PROCESSING PROCESSING

EINE EINFÜHRUNG IN DIE INFORMATIK EINE EINFÜHRUNG IN DIE INFORMATIK

Created by Michael Kirsch & Beat Rossmy

(2)

INHALT INHALT

1.

1.

2.

3.

4.

Sto der Vorlesung

Processing Basics Strings & Arrays Klassen

Objekte

2.

1.

2.

3.

4.

5.

6.

7.

Übung

Aufgabe 1 Aufgabe 1-A Aufgabe 1-B Aufgabe 1-C Aufgabe 1-D Aufgabe 2 Animationen

(3)

STOFF DER VORLESUNG

STOFF DER VORLESUNG

(4)

PROCESSING BASICS PROCESSING BASICS

key enthält den Character der zuletzt gedrückten Taste.

keyPressed gibt an ob gerade mind. eine Taste gedrückt ist.

keyPressed() wird immer dann aufgerufen wenn eine Taste gedrückt wird.

// 'a' wird gedrückt gehalten println(key); // -> 'a'

// 'a' wird losgelassen println(key); // -> 'a'

// 'b' wird gedrückt und losgelassen println(key); // -> 'b'

// 'a' wird gedrückt gehalten println(keyPressed); // -> true // 'a' wird losgelassen

println(keyPressed); // -> false

// 'b' wird gedrückt und losgelassen println(keyPressed); // -> true

void keyPressed () { println(key);

}

(5)

STRINGS & ARRAYS STRINGS & ARRAYS

Länge eines Strings

Index des ersten auftretenden Characters c

Überprüft ob String s identisch mit String t ist.

Länge eines Arrays

String s = "abc";

s.length(); // -> 3

s.indexOf('a'); // -> 0 s.indexOf('c'); // -> 2

String t = "ab";

s.equals(t); // -> false t = t + "c";

s.equals(t); // -> true

int[] a = new int[] {1,2,3,4,5,6};

a.length; // -> 6

(6)

KLASSEN KLASSEN

Signalwort + Name + Rumpf- Anfang

Felder

Konstruktor: Name + Übergabewerte

Methoden

Klassenrumpf-Ende

class Kreis {

int x,y,d;

public Kreis (intx ,int y, int d) { ...

}

void plot () { ...

} }

(7)

OBJEKTE OBJEKTE

Objekt deklarieren Objekt initialisieren

Objekt-Methoden Aufruf Objekt-Feld Zugri

Kreis k1;

k1 = new Kreis(122,321,20);

k1.plot();

println(k1.x);

k1.x++;

(8)

ÜBUNG

ÜBUNG

(9)

AUFGABE 1 AUFGABE 1

Vier Animationen auf Tastendruck

int animationCounter;

void setup () { size(600, 400);

animationCounter = 0;

}

void draw () { background(0);

handleInput();

drawAnimationA();

}

void handleInput () { if (keyPressed) {

animationCounter++;

} else {

animationCounter = 0;

} }

void drawAnimationA () {...}

...

(10)

AUFGABE 1 AUFGABE 1

Vier Animationen auf Tastendruck

void drawAnimationA () { if (animationCounter>0) {

// Ein Kreis bewegt sich von links nach rechts }

}

void drawAnimationB () { if (animationCounter>0) {

// Ein Kreis schrumpft von einem maximalen Wert zu 0 }

}

void drawAnimationC () { if (animationCounter>0) {

// Der Hintergrund wechselt zufällig die Farben }

}

void drawAnimationD () { if (animationCounter>0) {

// Rechteck wechselt Position bei Tastendruck (gezeichnet wenn gehalten) }

}

(11)

AUFGABE 1-A AUFGABE 1-A

Ein Kreis bewegt sich von links nach rechts

void drawAnimationA () { if (animationCounter>0) {

// Setze den Counter als x Koordinate der Ellipse }

}

(12)

AUFGABE 1-B AUFGABE 1-B

Ein Kreis schrumpft von einem maximalen Wert zu 0

void drawAnimationB () { if (animationCounter>0) {

// wenn maximale Größe minus Counter > 0

// Zeichne Kreis mit diesem Wert als Durchmesser }

}

(13)

AUFGABE 1-C AUFGABE 1-C

Der Hintergrund wechselt zufällig die Farben

// deklariere Variable für Hintergrundfarbe

void setup () {...}

void draw () {

// Hintergrund abhängig von Farbvariable ...

}

void drawAnimationC () { if (animationCounter>0) {

// wenn Taste gedrückt -> setze Variable für Farbe zufällig // ansonsten setze auf Standardfarbe

} }

(14)

AUFGABE 1-D AUFGABE 1-D

Neue Position bei Tastendruck (gezeichnet wenn gehalten)

// deklariere Variablen zum Speichern der Positionen

void setup () {...}

...

void drawAnimationD () { if (animationCounter>0) {

// erzeuge neue Positionen wenn Taste gerade gedrückt wurde // zeichne Rechteck

} }

(15)

AUFGABE 2 AUFGABE 2

Reagiere auf Maus- und Tasteninput.

// je ein animationCounter für Mausinput und Tasteninput void setup () {

size(600, 400);

// initialisiere beide animationCounter }

void draw () { background(0);

// handleMouseInput // handleKeyInput

// drawMouseAnimation // drawKeyAnimation }

void handleMouseInput () {...}

void handleKeyInput () {...}

void drawMouseAnimation () {...}

void drawKeyAnimation () {...}

(16)

ANIMATIONEN ANIMATIONEN

Versuche dir eigene Animationen auszudenken.

void drawAnimationE () { if (animationCounter>0) { // deine Idee

} }

void drawAnimationF () { if (animationCounter>0) { // deine Idee

} }

Referenzen

ÄHNLICHE DOKUMENTE

// deklariere die Variablen: Seitenlänge und Faktor (anfangs 1 später -1) void setup () {. // lege

Created by Michael Kirsch & Beat Rossmy... Sto

Eine schriftliche Prüfung ndet Ende des Semesters statt, in der der Sto der Vorlesung geprüft wird.. Der Termin wird

Created by Michael Kirsch & Beat Rossmy... Sto

public ColorCircle (int x, int y, char c) { // Aufruf des Konstruktors der Elternklasse.. AUFGABE 2

static markiert Felder oder Methoden einer Klasse, die auch ohne das Erzeugen eines Objekts existieren. Diese

Erzeuge in der main Methode ein Objekt der Klasse Ball und rufe auf diesem Objekt innerhalb einer Schleife move und plot auf. Lasse sich die Schleife 10.000

Euclidean Distance Transform can be done In linear time as well (the dimensionality does not matter). A bit more topology and digital geometry – digital straight lines,