20. September 2012
Um spannende Ornamente zu kreieren haben wir zum ersten Mal Schleifen eingesetzt. Dies hat den Vorteil, dass das eigentliche Muster nur einmal gezeichnet werden muss und dann x beliebig mal wiederholt werden kann. Anfangs habe ich nur mit einfachen Mustern ein Ornament erstellt, welches sich aber nicht wirklich auf alle 4 Seiten erweitern liess. Da kam mir die Idee Wellen zu zeichnen, die nach unten oder oben ausgerichtet sein konnten und somit horizontal wie auch vertikal ganze Wellenlinien darstellten. Um die Ausrichtung der Wellen auch gleich darstellen zu können, habe ich den Code so verändert, dass die Wellen sich selber nach dem Mauszeiger ausrichten. Danach kamen noch verschiedene Spielereien dazu wie Farbwerte oder Linienstärken je nach Zeigerbewegung zu ändern.void setup() { size(600,600); // def. fenstergroesse smooth(); // aktiviere antialiasing strokeWeight(15); // linienbreite } int colorR = 255; int colorG = 150; int colorB = 123; void draw() { background(255); // def. hintergrundfarbe frameRate(12); //colorR = 30; //colorG = 30; //colorB = 30; float radius = dist(mouseX,mouseY,width/2,height/2); radius = map(radius,0,width,1,4); for(int x = 0; x <= width; x+=30) { for(int y = 0; y <= height; y+=30) { if (colorR > 255) { colorR = 0; } if (colorG > 255) { colorG = 0; } if (colorB > 255) { colorB = 0; } colorR = colorR +3; colorG = colorG +3; colorB = colorB +3; pushMatrix(); //scale(2); translate(x,y); ornament(); // funtions aufruf popMatrix(); } } } // funktion void ornament() { rotate(calcAngle()); pushMatrix(); noFill(); strokeWeight(random(5,10)); arc(0, 0, 30, 30, radians(0), radians(180)); arc(15, 0, 30, 30, radians(180), radians(360)); pushStyle(); stroke(colorR,mouseX,colorB-mouseY); // stroke(colorR*mouseX,colorG*mouseY,mouseX-colorR); ellipse(0,7,5,5); ellipse(15,-7,5,5); popStyle(); strokeWeight(2); line(5,5,10,-5); line(-10,-5,-5,5); popMatrix(); } float calcAngle() { return -atan2(mouseX - (width / 2),mouseY - (height / 2)); }