/** * Mondrianizer 0.1 * Makes random Mondrian painting-bases * @author Vincent Bruijn * @date 2009-09-06 * @version 0.1 */ int myWidth; float myCanvas; float myHalfCanvas; float xoff = 0.0; float yoff = 4.0; void setup() { myWidth = 600; myCanvas = 0.5 * float(myWidth); myHalfCanvas = 0.5 * myCanvas; size(600, 600); smooth(); strokeCap(SQUARE); } void draw() { xoff = xoff + .004; yoff = yoff - .002; frameRate(20); background(255); translate(width/2, height/2); rotate(PI/4); strokeWeight(1); stroke(0); rect(-myHalfCanvas, -myHalfCanvas, myCanvas, myCanvas); rotate(PI * 0.75); float sw1 = (noise(yoff) * 6) + 2; strokeWeight(sw1); drawLine('h'); float sw2 = (noise(xoff) * 6) + 2; strokeWeight(sw2); drawLine('v'); rotate(PI/4); float myStrokeWeight = 16; strokeWeight(myStrokeWeight); stroke(224); noFill(); rect(-myHalfCanvas - (0.5 * myStrokeWeight), -myHalfCanvas - (0.5 * myStrokeWeight), myCanvas + myStrokeWeight, myCanvas + myStrokeWeight ); } void drawLine(char d) { float cMax = myHalfCanvas * sqrt(2.0); if (d == 'h') { float m = noise(yoff) * (cMax * 2); float y = map(m,0,cMax * 2, -cMax, cMax); float x1 = y < 0 ? (-y - cMax) : (y - cMax); float x2 = -x1; line(x1 - 4, y, x2 + 4, y); } else { float r = noise(xoff) * (cMax * 2); float x = map(r,0,cMax * 2, -cMax, cMax); float y1 = x < 0 ? (-x - cMax) : (x - cMax); float y2 = -y1; line(x, y1 - 4, x, y2 + 4); } }