19. September 2013
ZUSATZSCHLEIFEN - KOORDINATENSYSTEM http://blogs.iad.zhdk.ch/codingspace/lektionen/lektion-4/ http://blogs.iad.zhdk.ch/codingspace/koordinatensystem/ Donnerstag, 19.09.2013 Wir bearbeiteten hauptsächlich das Koordinatensystem mit welchem man ganze Formen ohne <vertex> verschieben, skalieren, rotieren etc. kann. Die Aufgabe bestand darin, einen eigenen Wald zu erstellen, der seine Form/Grösse etc. verändern konnte. EIGENERFAHRUNG Als ich die <random> Funktion für die Bläter und den Stamm benutzte und diese mit <push/popMatrix> kombinierte, stiess ich auf Hindernisse. Das Problem war, dass der Stamm immer verschoben zu den Blättern stand. Ich löste das Problem mit einere eigenen Variabel und Verschachtelung der <push/popMatrix>. Zwei weitere Probleme konnte ich noch nicht lösen. Die Wolke, welche mit jedem <pressedMouse> nach rechts fährt, wird nicht mehr gelöscht. Jedoch kann ich den <background> nicht in die <draw> Funktion nehmen. Es würde das Wolkenproblem zwar lösen, jedoch würde nur immer ein Baum angezeigt. Das nächste Hinderniss, welches ich noch nicht meistern konnte ist, dass die Bäume im Hintergrund kleiner werden und hintereinander stehen. Doch warte ich ab, bis wir die <arrays> anschauen, um das Problem zu lösen. Beispiel 1
void setup() { size(600, 300); background(#A1D4FC); smooth(); randomSeed(millis()); noLoop(); fill(255, 200, 20); rect(-1, 200, 601, 600); } void draw() { pushMatrix(); translate(1+cloudSpaceCount, 10); cloud(); popMatrix(); pushMatrix(); translate(random(-100, 600), random(100, 200)); pushMatrix(); translate(myCount1, myCount2); scale(.5); stamp(); translate(myCount1-140, myCount2-200); leaves(); popMatrix(); popMatrix(); } void cloud() { noStroke(); fill(255); ellipse(10, 5, 50, 10); } int myCount1 = 100; int myCount2 = 100; void stamp () { for (int i = 0; i<30; i++) { stroke(20, 20, 20); strokeWeight(6); fill(255, 20, 20); ellipse(10, random(1, 100), 4, 4); } } void leaves() { for (int i = 0; i<60; i++) { stroke(20, 20, 20); strokeWeight(2); fill(20, random(150, 220), 20); ellipse(random(1, 100), random(1, 100), 6, 6); } } int cloudSpaceCount = 0; void mousePressed() { redraw(); cloudSpaceCount++; println(cloudSpaceCount); }Output 1