Page 1 Christopher Schölzel Brückenkurs Programmierung WS 15

Transcrição

Page 1 Christopher Schölzel Brückenkurs Programmierung WS 15
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
Tag 1: Variablen und Verzweigungen
Variablen
If-Abfrage
float a = 3.5;
int b = 10;
boolean c = true;
String blabla = "Blabla";
if (<Bedingung>) {
<Anweisungsblock1>
} else {
<Anweisungsblock2>
}
Logische Operatoren
Arithmetische Operatoren
> >= ==
&& || !
!=
+
-
*
/
%
Tag 2: Animationen und Schleifen
Beispiel: For-Schleife
Syntax: While-Schleife
for (int i=0;i<end;i++) {
ellipse(i*10,20,10,10);
}
while(<Bedingung>) {
<Anweisungsblock>
}
setup und draw
Mausposition
void setup() {
//einmal am Anfang
}
void draw() {
//alle 15 ms
}
void draw() {
ellipse(mouseX,20,10,10);
}
Cheat sheet
1/ 8
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
Tag 3: Events und Arrays
keyPressed
Arrays
int counter = 0;
void keyPressed() {
if(key == ’a’) {
counter++;
} else if (key == ’x’) {
exit(0);
}
}
int[] numbers = new int[10];
numbers[0] = 20;
numbers[3+2] = numbers[0];
int val = numbers[5];
mousePressed
void mousePressed() {
if(mouseButton == LEFT) {
background(255);
}
else {
background(0);
}
}
Tag 4: Funktionen
Funktionsdefinition
Klasse mit Methode
int add(int a, int b) {
return a + b;
}
class Ball {
float x,y;
Ball(float x, float y) {
this.x = x;
this.y = y;
}
void display() {
ellipse(x,y,50,50);
}
}
Funktionsaufruf
int x = add(10,3);
Objekte und Methodenaufruf
Ball b = new Ball(100,200);
b.display();
Cheat sheet
2/ 8
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
Befehlsreferenz
Befehl
Beispiel
Beschreibung
Sketchsteuerung
size(w, h)
size(w, h, r)
height
width
exit()
loop()
noLoop()
frameRate
frameRate(x)
Initialisiert das Processingfenster mit
der Breite w und der Höhe h. Muss
immer als allererster Befehl ausgeführt
werden.
size(100, 100, P3D);
Funktioniert wie size(w, h). Zusätzlich
wird mit dem Renderer r bestimmt ob
2D (Wert P2D) oder 3D (Wert P3D) gezeichnet werden soll. Der 3D-Modus
funktioniert auf den Laborrechnern der
THM leider nicht.
float cx = height / 2.0;
Höhe des Processingfensters
float cy = width / 2.0;
Breite des Processingfensters
if(error) { exit(); }
Beendet das gesamte Programm.
if(animation) { loop(); }
Aktiviert das wiederholte Ausführen
von draw().
Deaktiviert das wiederholte Ausführen
if(anim) { loop(); }
else { noLoop(); }
von draw().
text("FPS: "+frameRate, 5, 20); Variable, die die aktuelle Anzeigegeschwindigkeit angibt.
frameRate(20);
Setzt die Anzeigegeschwindigkeit auf x
frames per second.
size(400, 300);
Konsolenbefehle
println(s)
printArray(ar)
println("YOLO");
int[] ar = new int[]{1, 2, 3};
printArray(ar);
Gibt einen String s auf der Konsole aus.
Gibt ein Array ar auf der Konsole aus.
2D-Zeichenelemente
ellipse(x,y,w,h)
ellipse(50,50,100,100);
line(x1,y1,x2,y2)
line(0,0,10,20);
point(x, y)
point(5, 10);
quad(x1,y1,x2,y2,
x3,y3,x4,y4)
quad(0,0,0,90,40,90,40,0);
rect(x,y,w,h)
rect(0,0,90,40);
triangle(x1,y1,
x2,y2,x3,y3)
triangle(20,0,0,20,20,20);
Cheat sheet
Zeichnet eine Ellipse mit Mittelpunkt
(x, y), Breite w und Höhe h.
Zeichnet eine Linie vom Punkt (x1, y1)
zum Punkt (x2, y2)
Färbt den Pixel am Punkt (x, y) ein.
Zeichnet ein Viereck mit den Eckpunkten (x1, y1), (x2, y2), (x3, y3) und (x4,
y4).
Zeichnet ein Rechteck mit der linken
oberen Ecke am Punkt (x, y), der Breite
w und der Höhe h.
Zeichnet ein Dreieck mit den Eckpunkten (x1, y1), (x2, y2) und (x3, y3).
3/ 8
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
Textbefehle
text(s, x, y)
loadFont(file)
textFont(fnt)
textSize(x)
textWidth(s)
text("Test", 100, 50);
Schreibt den Text s an Position (x, y).
PFont fnt = loadFont("xy.vlw"); Lädt eine Schriftart im VLW-Format,
PFont fnt = loadFont("f.vlw");
textFont(fnt);
textSize(10);
float w = textWidth("bla");
die in der PDE über den Menüpunkt
Tools → Create Font.. generiert wurde.
Setzt die aktuell verwendete Schriftart
auf fnt.
Setzt die Schriftgröße auf x Pixel.
Berechnet die Breite eines Textes s in
Pixeln bei den aktuellen Einstellungen.
3D-Zeichenelemente
box(w, h, d)
box(10, 10 , 10);
sphere(r)
sphere(100);
Zeichnet eine 3D-Box mit der Breite w,
der Höhe h und der Tiefe d mit dem
Mittelpunkt (0, 0).
Zeichnet eine 3D-Kugel mit dem Radius
r und dem Mittelpunkt (0,0).
Zeicheneinstellungen
color(gr)
color(r, g, b)
red(c)
green(c)
blue(c)
background(x)
background(r,g,b)
fill(x)
fill(r,g,b)
noFill()
stroke(x)
stroke(r,g,b)
noStroke()
strokeWeight(x)
Erzeugt einen Graustufen-Farbcode für
(0 =
ˆ Schwarz, 255 =
ˆ Weiß).
color cyan = color(0,255,255); Erzeugt einen RGB-Farbcode aus Rot-,
Grün- und Blaukanalwerten (0–255).
float r = red(color(100,50,0)); Berechnet den Rotanteil einer Farbe.
float g = green(color(10,50,0)); Berechnet den Grünanteil einer Farbe.
float b = blue(color(10,50,5)); Berechnet den Blauanteil einer Farbe.
Färbt das ganze Bild mit einem Farbbackground(255);
background(color(255,0,0));
code oder einem Grauwert (0–255) x.
background(255, 0, 0);
Färbt das ganze Bild mit einer Farbe
aus RGB-Werten (0–255).
Setzt die Füllfarbe auf einen Farbcode
fill(255);
fill(color(255,0,0));
oder einen Grauwert (0–255) x.
fill(255, 0, 0);
Setzt die Füllfarbe mit RGB-Werten.
noFill();
Macht die Füllfarbe transparent.
Setzt die Strichfarbe auf einen Farbcostroke(255);
stroke(color(255,0,0));
de oder einen Grauwert (0–255) x.
stroke(255, 0, 0);
Setzt die Strichfarbe mit RGB-Werten.
noStroke();
Macht die Strichfarbe transparent.
strokeWeight(3);
Setzt die Strichdicke auf x Pixel.
color white = color(255);
Mathematik (allgemein)
abs(x)
max(a, b)
max(ar)
min(a, b)
Cheat sheet
int positiv = abs(-3);
int m = max(3, 4);
int[] x = {1,5,6,3};
int m = max(x);
int m = min(3, 4);
Berechnet
Berechnet
Berechnet
Array.
Berechnet
den Betrag von x.
das Maximum von a und b.
das größte Element in einem
das Minimum von a und b.
4/ 8
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
max(ar)
round(x)
pow(a, b)
sqrt(x)
ceil(x)
int[]
int m
int r
float
float
int n
x = {1,5,6,3};
= min(x);
= round(3.5);
v = pow(2.1, 2.5);
x1 = 4 + sqrt(3);
= ceil(3.1);
floor(x)
int n = floor(3.1);
exp(x)
log(x)
dist(x1,y1,x2,y2)
float x = exp(1.2);
float a = log(3);
float d = dist(0,1,2,1);
Berechnet das kleinste Element in einem Array.
Rundet x auf die nächste ganze Zahl.
b
Berechnet den Wert von a
√.
Berechnet den Wert von x.
Rundet x auf die nächsthöhere ganze
Zahl auf.
Rundet x auf die nächstkleinere ganze
Zahl ab.
Berechnet den Wert von ex .
Berechnet den Wert von ln(x).
Berechnet die Distanz zwischen den
Punkten (x1, y1) und (x2, y2).
Mathematik (Trigonometrie)
sin(x)
cos(x)
tan(x)
degrees(r)
radians(d)
acos(x)
asin(x)
atan(x)
atan2(y,x)
float
float
float
float
float
float
float
float
float
s = sin(PI);
c = cos(HALF_PI);
t = tan(PI);
d = degrees(0.5 * PI);
r = radians(45);
alpha = acos(4/3.0);
alpha = asin(4/3.0);
alpha = atan(4/3.0);
alpha = atan2(4, 3.0);
PI
HALF_PI
QUARTER_PI
TWO_PI
float
float
float
float
alpha
alpha
alpha
alpha
=
=
=
=
PI / 3;
HALF_PI;
QUARTER_PI / 2;
TWO_PI / 360;
Berechnet sin(x) (mit x im Bogenmaß!).
Berechnet cos(x) (mit x im Bogenmaß).
Berechnet tan(x) (mit x im Bogenmaß).
Wandelt r vom Bogenmaß in Grad um.
Wandelt d von Grad ins Bogenmaß um.
Berechnet arccos(x) im Bogenmaß.
Berechnet arcsin(x) im Bogenmaß.
Berechnet arctan(x)im Bogenmaß.
Berechnet arctan xy im Bogenmaß mit
korrektem Vorzeichen.
Konstante mit dem Wert π
Konstante mit dem Wert π2
Konstante mit dem Wert π4
Konstante mit dem Wert 2π
Zufall
random(high)
float w6 = round(random(6))+1;
random(low,high)
float x = random(5,10);
Erzeugt eine zufällige Fließkommazahl
im Intervall [0, high)
Erzeugt eine zufällige Fließkommazahl
im Intervall [low, high)
Transformationen (allgemein)
pushMatrix()
rotate(r)
pushMatrix();
rotate(PI); rect(10,10,50,50);
popMatrix();
rect(10,10,50,50);
pushMatrix();
rotate(PI); rect(10,10,50,50);
popMatrix();
rect(10,10,50,50);
rotate(PI);
scale(s)
scale(2.0);
popMatrix()
Cheat sheet
Speichert die aktuelle Transformationsmatrix oben auf dem Ablagestapel.
Nimmt die oberste Transformationsmatrix vom Ablagestapel und wendet sie
an.
Fügt der aktuellen Transformationsmatrix eine Rotation (Bogenmaß) hinzu.
Fügt der aktuellen Transformationsmatrix einen Skalierungsfaktor hinzu.
5/ 8
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
translate(x, y)
translate(10, 50);
Fügt der aktuellen Transformationsmatrix eine Verschiebung hinzu.
Transformationen (3D)
rotateX(r)
rotateX(0.3 * PI);
rotateY(r)
rotateY(0.1 * PI);
rotateZ(r)
rotateZ(0.2 * PI);
scale(sx, sy, sz)
scale(1.0, 1.0, 2.0);
translate(x, y, z)
translate(0,100,0);
Fügt der aktuellen Transformationsmatrix eine Rotation im Bogenmaß um die
x-Achse hinzu.
Fügt der aktuellen Transformationsmatrix eine Rotation im Bogenmaß um die
y-Achse hinzu.
Fügt der aktuellen Transformationsmatrix eine Rotation im Bogenmaß um die
z-Achse hinzu.
Fügt der aktuellen Transformationsmatrix Skalierungsfaktoren in x-, y- und zRichtung hinzu.
Fügt der aktuellen Transformationsmatrix eine Verschiebung in x-, y- und zRichtung hinzu.
Maussteuerung
mouseButton
Gibt innerhalb einer Mauseventfunktivoid mousePressed() {
if(mouseButton == 1){exit();} on an, welcher Knopf gedrückt oder los}
gelassen wurde.
mouseClicked()
Code innerhalb dieser Funktion wird
ausgeführt, wenn eine Maustaste gedrückt und losgelassen wurde.
Code innerhalb dieser Funktion wird
float x = 0;
void mouseDragged()
ausgeführt, wenn die Maus bei ge{ x = mouseX; }
drückter Maustaste bewegt wird.
Code innerhalb dieser Funktion wird
float y = 0;
void mouseMoved()
ausgeführt, wenn die Maus bewegt
{ y = mouseY; }
wird.
Gibt an, ob zum Beginn des aktuellen
void draw() {
if(mousePressed){fill(255);} Frames eine Maustaste gedrückt gehal}
ten wurde.
Code innerhalb dieser Funktion wird
void mousePressed() {
if(mouseButton == 1){exit();} ausgeführt, wenn eine Maustaste ge}
drückt wird.
Code innerhalb dieser Funktion wird
void mouseReleased() {
if(mouseButton == 1){exit();} ausgeführt, wenn eine Maustaste losge}
lassen wird.
float x = mouseX;
Aktuelle x-Koordinate der Maus
float y = mouseY;
Aktuelle y-Koordinate der Maus
float vx = mouseX - pmouseX;
Vorherige y-Koordinate der Maus
float vy = mouseY - pmouseY;
Vorherige y-Koordinate der Maus
mouseDragged()
mouseMoved()
mousePressed
mousePressed()
mouseReleased()
mouseX
mouseY
pmouseX
pmouseY
Cheat sheet
void mouseClicked() {
exit();
}
6/ 8
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
Tastatursteuerung
key
keyCode
keyPressed
keyPressed()
keyReleased()
keyTped()
Gibt innerhalb einer Tastatureventfunktion an, welche normale“ Zeichen”
taste gedrückt wurde (’a’, ’ ’, ’;’, ...).
Gibt innerhalb einer Tastatureventvoid keyPressed() {
if(keyCode == ESC){exit();}
funktion an, welche Steuertaste ge}
drückt wurde (UP, DOWN, CONTROL, ...).
Gibt an, ob zu Beginn des aktuellen
void draw() {
if(keyPressed) {fill(255);}
Frames eine Tastaturtaste gedrückt ge}
halten wurde.
Code innerhalb dieser Funktion wird
void keyPressed()
{ if(keyCode == ESC){exit();} } ausgeführt, wenn eine Tastaturtaste gedrückt wird.
Code innerhalb dieser Funktion wird
void keyReleased()
{ if(keyCode == ESC){exit();} } ausgeführt, wenn eine Tastaturtaste
losgelassen wird.
Code innerhalb dieser Funktion wird
float x = 0;
void keyTyped()
ausgeführt, wenn eine normale“ Zei”
{ text(""+key, x, 20); }
chentaste gedrückt wird.
void keyPressed() {
if(key == ’Q’){exit();}
}
Pixelmanipulationen
pixels
loadPixels()
updatePixels()
Array mit Farbcodes für jeden einloadPixels();
pixels[5*width+50] = color(10); zelnen Pixel. Der Farbcode für einen
updatePixels();
Punkt (x,y) befindet sich dabei an Index y * width + x.
Initialisiert pixels mit den Werten des
loadPixels();
pixels[5*width+50] = color(10); aktuellen Bilds.
updatePixels();
Überschreibt das aktuelle Bild mit den
loadPixels();
pixels[5*width+50] = color(10); Werten von pixels.
updatePixels();
Freiformzeichnen (Polygone)
beginShape()
vertex(x, y)
vertex(x, y, z)
Cheat sheet
beginShape();
vertex(10,0);
vertex(0,10);
vertex(20,10);
endShape(CLOSE);
beginShape();
vertex(10,0);
vertex(0,10);
vertex(20,10);
endShape(CLOSE);
beginShape();
vertex(10,0,10);
vertex(0,10,10);
vertex(20,10,10);
endShape(CLOSE);
Beginnt eine Freiformfigur zu zeichnen.
Die Zeichnung erfolgt mit der Methode
vertex(x, y) und endet mit dem Aufruf
von endShape().
Fügt den Punkt (x, y) zur aktuellen
Freiformfigur hinzu.
Funktioniert wie vertex(x, y) mit der
dritten Dimension z.
7/ 8
Christopher Schölzel
Brückenkurs Programmierung WS 15/16
endShape()
endShape(CLOSE)
Beendet das Zeichnen einer Freiformfigur. Die Figur wird als Linie gezeichnet.
beginShape();
vertex(10,0);
vertex(0,10);
vertex(20,10);
endShape();
beginShape();
vertex(10,0);
vertex(0,10);
vertex(20,10);
endShape(CLOSE);
Beendet das Zeichnen einer Freiformfigur. Die Figur wird als geschlossene
Form gezeichnet.
Sonstiges
millis()
int t = millis();
ArrayList<E>
ArrayList<String> lst;
lst = new ArrayList<String>();
String s = "Bla";
lst.add(s);
lst.add("Blubb");
println(lst.size());
lst.remove(s);
println(lst.get(0));
Cheat sheet
Gibt die Millisekunden seit dem Start
des Programms an.
Die Klasse ArrayList<E> verhält sich
wie ein dynamisch erweiterbares Array
vom Typ E[]. Mit der Methode add(x)
kann ein Element x hinzugefügt werden, mit der Methode remove(x) wird
es gelöscht. Die Methode size() gibt
die aktuelle Größe der Liste an und mit
get(i) kann man auf das Element mit
dem Index i zugreifen.
8/ 8

Documentos relacionados