Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

drawingTool(2);

19. September 2013

FRAMEWORK EVENTS - BEDINGUNGEN - ZUFALLSZAHL - SCHLEIFEN - EIGENE FUNKTIONEN http://blogs.iad.zhdk.ch/codingspace/lektionen/lektion-2/ http://blogs.iad.zhdk.ch/codingspace/lektionen/bedingungen/ http://blogs.iad.zhdk.ch/codingspace/zufallszahl/ http://blogs.iad.zhdk.ch/codingspace/lektionen/schleifen/ MITTWOCH, 18.09.2013 Wir lernten wie <Processing> mit der <setup> und <draw> Funktion arbeitet. Ebenfalls lernten wir die<Bedingungen, Zufallszahlen und Schleifen> kennen. Mit dem Neugelernten bekamen wir die Aufgabe einen Drawing-Tool zu programmieren. Eine einfache Form vom bekannten "Paint". EIGENERFAHRUNG <Processing> sagt mir immer mehr zu. Ich finde es toll, dass man immer ein grafisches Resultat sieht. Dadurch ist die ganze Programmiererei nicht ganz so trocken. Die <Bedingungen, Zufallszahlen, Schleifen und eigene Funktionen> studierte ich bereits im Privaten, da ich mit <Java> zu tun hatte. Also nichts neues für mich. Dennoch ist es spannend es mit anderen Sachen zu kombinieren als ich es mir gewohnt bin/war. Beim Beispiel 5 stiess ich auf ein Problem, als ich einen Button mit der Funktion der Farbübergabe  machen wollte. Es war nicht einfach dies zu lösen. Die Denkensweise, die man sich zum Programmieren an eignen muss, macht mir stets schwierigkeiten. Ich denke ich habe alles verstanden und am Tag darauf merke ich, dass ich am Vortag es eben nicht verstanden habe.. und so weiter. Mit dem aktuellen Stand bin ich noch nicht zufrieden.   Beispiel 1

void setup() // programmstart
{
size(300,300); // def. fenstergrösse
smooth(); // aktiviert antialiasing
stroke(255,255,255); // def. konturfarbe
strokeWeight(5); // def. konturbreite

}

void draw() // zeichenausgabe auf fenster (60fps)
{
background(0); // def. hintergrundfarbe
fill(255,0,0); // def. fuellfarbe
rect(random(50,100),random(50,100),random(50,100),random(50,100)); // rechteck mit zufallszahlen
}

Output 1 (Rechteck wird 60 Mal in der Sekunde neu generiert. ProcessingLessonTwo_1 Beispiel 2

void setup() {
size(300, 300);
background(1);
smooth();
stroke(255, 255, 255);
}

void draw() {
ellipse(mouseX, mouseY, 8, 8); // position der ellipse ist dort wo die Maus ist
}

void mousePressed() { // mauspositionsfuntion ausgabe auf konsole
println(&amp;amp;amp;quot;x:&amp;amp;amp;quot; + mouseX + &amp;amp;amp;quot;y:&amp;amp;amp;quot; + mouseY);
}

Output 2 ProcessingLessonTwo_2 Output 2 Konsoleoutput ProcessingLessonTwo_3 Beispiel 3
&amp;amp;amp;lt;pre&amp;amp;amp;gt;int x=10;

// Bedingung ohne Klammer-Block, die Bedingung
// geht in diesem Fall bis zum nächsten Semikolon
// das else ist ebenfalls optional
if(x == 10)
println(&amp;amp;amp;quot;x ist gleich 10&amp;amp;amp;quot;);

// Hier eine Bedinung mit mehreren Fällen
// zu Beachten ist die schreibweise von 'else if'
if(x == 10)
println(&amp;amp;amp;quot;x ist gleich 10&amp;amp;amp;quot;);
else if(x == 9)
println(&amp;amp;amp;quot;x ist gleich 9&amp;amp;amp;quot;);
else if(x == 8)
println(&amp;amp;amp;quot;x ist gleich 8&amp;amp;amp;quot;);
else
println(&amp;amp;amp;quot;x ist nicht 10,9 oder 8&amp;amp;amp;quot;);

Output 3 Konsolenoutput ProcessingLessonTwo_5 Beispiel 4
&amp;amp;amp;lt;pre&amp;amp;amp;gt;
int x=10;
switch(x)
{
case 10:
println(&amp;amp;amp;quot;x ist gleich 10&amp;amp;amp;quot;);
break;
case 9:
println(&amp;amp;amp;quot;x ist gleich 9&amp;amp;amp;quot;);
break;
case 8:
println(&amp;amp;amp;quot;x ist gleich 8&amp;amp;amp;quot;);
break;
default:
println(&amp;amp;amp;quot;x ist nicht 10,9 oder 8&amp;amp;amp;quot;);
break;
}
Output 4 Konsolenoutput ProcessingLessonTwo_6 Beispiel 5
color strokeColor = #000000;

class MyButton {
int x, y;
int buttonHeight = 32;
int buttonWidth = 32;
color c;
boolean clicked = false;

MyButton(int _x, int _y, color _c) {
x = _x;
y = _y;
c = _c;
}

void checkClick() {

if (mouseX &amp;amp;amp;gt;= x &amp;amp;amp;amp;&amp;amp;amp;amp; mouseX &amp;amp;amp;lt; x+buttonWidth &amp;amp;amp;amp;&amp;amp;amp;amp;
mouseY &amp;amp;amp;gt;= y &amp;amp;amp;amp;&amp;amp;amp;amp; mouseY &amp;amp;amp;lt; y+buttonHeight) {

strokeColor = c;
clicked = true;
}

else {
clicked = false;
}
}

void generate() {
fill(c);
rect(x, y, buttonWidth, buttonHeight);
}
}

MyButton b1,b2,b3,b4;

void setup() {
background(255);
size(600, 400);
rect(50, 50, 500, 340);

b1 = new MyButton(10, 50, #000000);
b2 = new MyButton(10, 92, #FF0303);
b3 = new MyButton(10, 134, #39EA1F);
b4 = new MyButton(10, 178, #FAEF19);
}

void draw() {
b1.generate();
b2.generate();
b3.generate();
b4.generate();
}

void mouseDragged() {
stroke(strokeColor);
line(pmouseX, pmouseY, mouseX, mouseY);
}

void mousePressed() {
b1.checkClick();
b2.checkClick();
b3.checkClick();
b4.checkClick();
}

Output 5 ProcessingLessonTwo_4