// Circular Painting 3b // Changed so that after randomizing // it will still synchronize. // October 23, 2017 - John Clavin var incAmount1; var incAmount2; var incAmount3; var incAmount4; var incAmount5; var incAmount6; var increment1 = 0; var increment2 = 0; var increment3 = 0; var increment4 = 0; var increment5 = 0; var increment6 = 0; var angle1 = 18; var angle2 = 18; var angle3 = 18; var angle4 = 18; var angle5 = 18; var angle6 = 18; var colorArray = []; var angleArray = []; var incArray = []; var lastRand; function setup() { createCanvas(800, 800); frameRate(60); background(232); strokeWeight(1); createColors(40); createIncAmounts(); angleArray = [9, 12, 18, 24]; incAmount1 = -radians(0.10); incAmount2 = +radians(0.15); incAmount3 = +radians(0.20); incAmount4 = +radians(0.40); incAmount5 = +radians(0.60); incAmount6 = -radians(0.80); } function draw() { wheel(740, angle1, increment1); increment1 += incAmount1; wheel(640, angle2, increment2); increment2 += incAmount2; wheel(540, angle3, increment3); increment3 += incAmount3; wheel(440, angle4, increment4); increment4 += incAmount4; wheel(340, angle5, increment5); increment5 += incAmount5; wheel(240, angle6, increment6); increment6 += incAmount6; fill(120); ellipse(width / 2, height / 2, 90, 90); fill(0); ellipse(width / 2, height / 2, 30, 30); } function mousePressed() { if (isMouseOver() === true) { randomize(); } return false; } function wheel(dia, pAngle, pInc) { var lastAngle = pInc; for (var i = 0; i < 360 / pAngle; i++) { var pColor = colorArray[i]; fill(pColor); arc(width / 2, height / 2, dia, dia, lastAngle, lastAngle + radians(pAngle)); lastAngle += radians(pAngle); } } function createColors(number) { var cRed = color(210, 0, 0); var cBlack = color(10); var cGrey = color(120); var colorSet = []; colorSet[0] = cRed; colorSet[1] = cBlack; colorSet[2] = cGrey; colorSet[3] = cBlack; colorSet[4] = cGrey; for (var i = 0; i < number; i = i + 5) { for (var j = 0; j < 5; j++) { colorArray[i + j] = colorSet[j]; } } } function createIncAmounts() { incArray[0] = -radians(0.10); incArray[1] = -radians(0.15); incArray[2] = -radians(0.20); incArray[3] = -radians(0.40); incArray[4] = -radians(0.60); incArray[5] = -radians(0.80); incArray[6] = radians(0.10); incArray[7] = radians(0.15); incArray[8] = radians(0.20); incArray[9] = radians(0.40); incArray[10] = radians(0.60); incArray[11] = radians(0.80); } function randomize() { increment1 = 0; increment2 = 0; increment3 = 0; increment4 = 0; increment5 = 0; increment6 = 0; var allAngle = floor(random(4)); angle1 = angleArray[allAngle]; angle2 = angleArray[allAngle]; angle3 = angleArray[allAngle]; angle4 = angleArray[allAngle]; angle5 = angleArray[allAngle]; angle6 = angleArray[allAngle]; incAmount1 = incArray[rndNoRepeat(12)]; incAmount2 = incArray[rndNoRepeat(12)]; incAmount3 = incArray[rndNoRepeat(12)]; incAmount4 = incArray[rndNoRepeat(12)]; incAmount5 = incArray[rndNoRepeat(12)]; incAmount6 = incArray[rndNoRepeat(12)]; } function rndNoRepeat(randomField) { var test = floor(random(randomField)); while (test == lastRand) { test = floor(random(randomField)); } lastRand = test; return test; } function isMouseOver() { if ((mouseX < 0) || (mouseX > width) || (mouseY < 0) || (mouseY > height)) { return false; } else { return true; } }