int level = 0; int psize = 500; boolean drawPoints = false; boolean saveCSV = false; void setup() { size(psize, psize/2); } void draw() { ArrayList c; background(255); // level is derived from mouseX, level 7 is maximum level = int(float(mouseX) / psize * 8); // calculate curve for level c = kochCurve(level, new PVector(0, 0), new PVector(psize, 0)); // shift curve translate(0, psize/3); // draw curve drawCurve(c, drawPoints); // save points as CSV if (saveCSV) { savePointsCSV(c, "koch.csv", 0.01); saveCSV = false; } } void keyPressed() { if (key == 'p') drawPoints = !drawPoints; else if (key == 'c') saveCSV = true; }