// Chris Olsen // 500360239 // Problem Set 3 - Question 1 int[] diameter = { //array for diameter of each circle 600, 400, 200}; float[] lastusedAngle = new float[3]; //progression float[] num = new float[3]; color[] colors = { color(255,218,42,100), color(178,30,150,100), color(0,0,0), color(34,204,197,100), color(0,218,42,100)}; //color palette int[] position = new int[3]; color holdColor; void setup() { size(600, 600); smooth(); frameRate(45); noStroke(); background(0); } void draw() { //1st generator for (int i=0; i<=2; i++) { num[i] = random(360-lastusedAngle[i]+1); if ((num[i] > 15) && (num[i] < 40) ) { pushMatrix(); translate(width/2,height/2); rotate(radians(map(position[1],1,600,1,360))); fill(colors[i]); arc(0,0,600,600,lastusedAngle[i],lastusedAngle[i]+radians(num[i])); //adds to the succession of arcs lastusedAngle[i] += num[i]; popMatrix(); position[1] += num[i]; fill(0); ellipse(width/2,height/2,50,50); } else if (lastusedAngle[i] <= 0); lastusedAngle[i] = 0; } changeColor(); //2nd generator for (int i=0; i<=2; i++) { num[i] = random(360-lastusedAngle[i]+1); if ((num[i] > 15) && (num[i] < 40) ) { pushMatrix(); translate(width/2,height/2); rotate(radians(-map(position[2],1,600,1,360))); fill(colors[i]); arc(0,0,200,200,lastusedAngle[i],lastusedAngle[i]+radians(num[i])); //adds to the succession of arcs lastusedAngle[i] += num[i]; popMatrix(); position[2] += num[2]; fill(0); ellipse(width/2,height/2,50,50); } else if (lastusedAngle[i] <= 0); lastusedAngle[i] = 0; } changeColor(); //3rdgenerator for (int i=0; i<=2; i++) { num[i] = random(360-lastusedAngle[i]+1); if ((num[i] > 15) && (num[i] < 40) ) { pushMatrix(); translate(width/2,height/2); rotate(radians(map(position[2],1,600,1,360))); fill(colors[i]); arc(0,0,400,400,lastusedAngle[i],lastusedAngle[i]+radians(num[i])); //adds to the succession of arcs lastusedAngle[i] += num[i]; popMatrix(); position[2] += num[2]; fill(0); ellipse(width/2,height/2,50,50); } else if (lastusedAngle[i] <= 0); lastusedAngle[i] = 0; } changeColor(); } void changeColor() { //cycles through color selection holdColor = colors[0]; colors[0] = colors[1]; colors[1] = colors[2]; colors[2] = colors[3]; colors[3] = colors[4]; colors[4] = holdColor; }