// Color Theme and Variation 2 // by John Clavin, June 2008 // Do not alter this work. color[] jColorArray = new color[5]; color[] jColorVar1Array = new color[5]; color[] jColorVar2Array = new color[5]; int[] varOffset1Array = new int[3]; int[] varOffset2Array = new int[3]; int drawLoopCount = 0; int a; // row index float plusAdj; float minusAdj; float verticalSeg; float horizontalSeg; void setup() { size(780, 482); background(246); strokeWeight(1); smooth(); frameRate(12); plusAdj = 100; minusAdj = plusAdj/2*-1; verticalSeg = (height + plusAdj)/4; horizontalSeg = (width + plusAdj)/6; colorSetup(); rectMode(CENTER); } void draw() { drawLoopCount++; a = 1; for( int b = 1; b < 6; b++) { stroke(jColorArray[b-1]); sketch(int(horizontalSeg*b+minusAdj), int(verticalSeg*a+minusAdj)); } a = 2; for( int b = 1; b < 6; b++) { stroke(jColorVar1Array[b-1]); sketch(int(horizontalSeg*b+minusAdj), int(verticalSeg*a+minusAdj)); } a = 3; for( int b = 1; b < 6; b++) { stroke(jColorVar2Array[b-1]); sketch(int(horizontalSeg*b+minusAdj), int(verticalSeg*a+minusAdj)); } if(drawLoopCount > 80) { delay(9000); background(248); colorSetup(); drawLoopCount = 0; } } void sketch(int x, int y) { int leftDim; int rightDim; int upDim; int downDim; int dim; dim = int(random(48, 100)); leftDim = dim; rightDim = dim; upDim = int(random(100)); downDim = int(random(100)); line(x - leftDim, random(y - upDim, y + downDim), x + rightDim, random(y - upDim, y + downDim)); dim = int(random(48, 100)); leftDim = int(random(100)); rightDim = int(random(100)); upDim = dim; downDim = dim; line(random(x - leftDim, x + rightDim), y - upDim, random(x - leftDim, x + rightDim), y + downDim); } void colorSetup() { createColorVar(); int variationSelect = int(random(3)); switch(variationSelect) { case 0: for(int i = 0; i < 5; i++) { jColorArray[i] = createColor1(); jColorVar1Array[i] = applyVarOffset1(jColorArray[i]); jColorVar2Array[i] = applyVarOffset2(jColorArray[i]); } break; case 1: for(int i = 0; i < 5; i++) { jColorArray[i] = createColor2(); jColorVar1Array[i] = applyVarOffset1(jColorArray[i]); jColorVar2Array[i] = applyVarOffset2(jColorArray[i]); } break; case 2: for(int i = 0; i < 5; i++) { jColorArray[i] = createColor3(); jColorVar1Array[i] = applyVarOffset1(jColorArray[i]); jColorVar2Array[i] = applyVarOffset2(jColorArray[i]); } break; } } color createColor1() { int colorSelect = int(random(6)); int R = 0; int G = 0; int B = 0; switch(colorSelect) { case 0: R = int(random(100, 240)); G = int(random(20, 100)); B = int(random(20, 100)); break; case 1: R = int(random(20, 100)); G = int(random(100, 180)); B = int(random(20, 100)); break; case 2: R = int(random(20, 100)); G = int(random(20, 100)); B = int(random(100, 230)); break; case 3: R = int(random(100, 200)); G = int(random(100, 180)); B = int(random(20, 100)); break; case 4: R = int(random(20, 100)); G = int(random(100, 180)); B = int(random(100, 200)); break; case 5: R = int(random(100, 200)); G = int(random(20, 100)); B = int(random(100, 200)); break; } return color(R, G, B); } color createColor2() { int R = int(random(130, 160)); int G = int(random(130, 160)); int B = int(random(130, 160)); return color(R, G, B); } color createColor3() { int R = int(random(160, 220)); int G = int(random(160, 220)); int B = int(random(160, 220)); return color(R, G, B); } void createColorVar() { varOffset1Array[0] = int(random(-75, 75)); varOffset1Array[1] = int(random(-75, 75)); varOffset1Array[2] = int(random(-75, 75)); varOffset2Array[0] = int(random(-75, 75)); varOffset2Array[1] = int(random(-75, 75)); varOffset2Array[2] = int(random(-75, 75)); } color applyVarOffset1(color c) { int R = c >> 16 & 0xFF; int G = c >> 8 & 0xFF; int B = c & 0xFF; R += varOffset1Array[0]; G += varOffset1Array[1]; B += varOffset1Array[2]; return color(R, G, B); } color applyVarOffset2(color c) { int R = c >> 16 & 0xFF; int G = c >> 8 & 0xFF; int B = c & 0xFF; R += varOffset2Array[0]; G += varOffset2Array[1]; B += varOffset2Array[2]; return color(R, G, B); }