float A; float x,y; int frames = 106; void setup() { size(500, 500); colorMode(HSB,360,100,100); frameRate(15); smooth(); strokeJoin(BEVEL); } void draw() { background(100,10,70); for (int i=0; i<1; i++) { //以下最背面の歯車 pushMatrix(); translate(300,400); rotate(A+i); scale(2); gearK2(x,y); popMatrix(); pushMatrix(); translate(135,100); rotate((A+i)*-1); scale(2); gear2K2(x,y); popMatrix(); pushMatrix(); translate(50,300); rotate(A+i); gear6K2(x,y); popMatrix(); pushMatrix(); translate(450,200); rotate(A+i); scale(1.5); gear5K2(x,y); popMatrix(); pushMatrix(); translate(350,80); rotate(A+i); scale(0.8); gear4K2(x,y); popMatrix(); pushMatrix(); translate(50,450); rotate((A+i)*-1); scale(0.65); gear4K2(x,y); popMatrix(); //以下最前面の歯車 pushMatrix(); translate(100,100); rotate(A+i); gearK(x,y); popMatrix(); pushMatrix(); translate(95, 95); rotate(A+i); gear(x,y); popMatrix(); pushMatrix(); translate(135,343); rotate(A+i); scale(1.2); gear3K(x,y); popMatrix(); pushMatrix(); translate(130,338); rotate(A+i); scale(1.2); gear3(x,y); popMatrix(); pushMatrix(); translate(235, 190); rotate((A+i)*-1); gear2K(x,y); popMatrix(); pushMatrix(); translate(230, 185); rotate((A+i)*-1); gear2(x,y); popMatrix(); pushMatrix(); translate(290, 295); rotate((A+i)*-1); scale(0.5); gear6K(x,y); popMatrix(); pushMatrix(); translate(285, 290); rotate((A+i)*-1); scale(0.5); gear6(x,y); popMatrix(); pushMatrix(); translate(407,315); rotate(A+i); scale(0.7); gear4K(x,y); popMatrix(); pushMatrix(); translate(402,310); rotate(A+i); scale(0.7); gear4(x,y); popMatrix(); pushMatrix(); translate(310,455); rotate((A+i)*-1); scale(1.4); gear5K(x,y); popMatrix(); pushMatrix(); translate(305,450); rotate((A+i)*-1); scale(1.4); gear5(x,y); popMatrix(); pushMatrix(); translate(420,65); rotate(A+i); scale(2); gear6K(x,y); popMatrix(); pushMatrix(); translate(415,60); rotate(A+i); scale(2); gear6(x,y); popMatrix(); fill(0,0,99,200); stroke(0,0,99,200); rect(x+280,y+380,200,100); fill(#4A485F); PFont F = createFont("CourierNewPS-BoldMT",18); textFont(F); text("1.Please click screen", x+290, y+410); text("2.Push [R]key...STOP", x+290, y+440); text("Push [Y]key...WORK", x+305, y+463); } A += TWO_PI/frames; } void keyPressed(){ if(key == 'r'){ //RkeyでSTOP noLoop(); }else if(key == 'y'){ //YkeyでSTART loop(); } } //以下図形のコード void gear(float x, float y) { noFill(); strokeWeight(20); stroke(175,5,85); ellipse(x, y, 140, 140); noStroke(); fill(175,5,85); ellipse(x,y,50,50); ellipse(x,y-45,50,50); ellipse(x,y+45,50,50); ellipse(x-45,y,50,50); ellipse(x+45,y,50,50); fill(175,5,75); ellipse(x,y,30,30); ellipse(x,y-45,30,30); ellipse(x,y+45,30,30); ellipse(x-45,y,30,30); ellipse(x+45,y,30,30); fill(175,5,65); ellipse(x,y,15,15); ellipse(x,y-45,20,20); ellipse(x,y+45,20,20); ellipse(x-45,y,20,20); ellipse(x+45,y,20,20); stroke(175,5,85); strokeWeight(6); fill(175,5,85); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gearK(float x, float y) { noFill(); strokeWeight(20); stroke(175,15,55); ellipse(x, y, 140, 140); strokeWeight(10); noStroke(); fill(175,15,55); ellipse(x,y,50,50); ellipse(x,y-45,50,50); ellipse(x,y+45,50,50); ellipse(x-45,y,50,50); ellipse(x+45,y,50,50); fill(175,15,55); ellipse(x,y,30,30); //円と中心穴 stroke(175,15,55); strokeWeight(6); fill(175,15,55); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gear2(float x, float y) { strokeWeight(20); noFill(); stroke(175,5,85); ellipse(x, y, 100, 100); strokeWeight(20); line(x,y-50,x,y+50); line(x-50,y,x+50,y); noStroke(); fill(175,5,85); ellipse(x,y,50,50); fill(175,5,75); ellipse(x,y,30,30); fill(175,5,65); ellipse(x,y,15,15);//円と中心線 stroke(175,5,85); strokeWeight(6); fill(175,5,85); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gear2K(float x, float y) { strokeWeight(20); noFill(); stroke(175,15,55); ellipse(x, y, 100, 100); strokeWeight(20); line(x,y-50,x,y+50); line(x-50,y,x+50,y); noStroke(); fill(175,15,55); ellipse(x,y,50,50); fill(175,15,55); ellipse(x,y,30,30); stroke(175,15,55); strokeWeight(6); fill(175,15,55); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gear3(float x, float y) { strokeWeight(20); noFill(); stroke(175,5,85); ellipse(x, y, 130, 130); strokeWeight(10); line(x,y-70,x,y+70); line(x-70,y,x+70,y); line(x-60,y-60,x+60,y+60); line(x+60,y-60,x-60,y+60); noStroke(); fill(175,5,85); ellipse(x,y,50,50); fill(175,5,75); ellipse(x,y,25,25); fill(175,5,65); ellipse(x,y,15,15); stroke(175,5,85); strokeWeight(6); fill(175,5,85); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gear3K(float x, float y) { strokeWeight(20); noFill(); stroke(175,15,55); ellipse(x, y, 130, 130); strokeWeight(10); line(x,y-70,x,y+70); line(x-70,y,x+70,y); line(x-60,y-60,x+60,y+60); line(x+60,y-60,x-60,y+60); noStroke(); fill(175,15,55); ellipse(x,y,50,50); fill(175,15,55); ellipse(x,y,30,30); fill(175,15,55); ellipse(x,y,15,15); stroke(175,15,55); strokeWeight(6); fill(175,5,85); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gear4(float x, float y) { strokeWeight(15); noFill(); stroke(175,5,85); ellipse(x, y, 135, 135); ellipse(x, y, 90, 90); strokeWeight(15); line(x,y-70,x,y+70); line(x-70,y,x+70,y); noStroke(); fill(175,5,85); ellipse(x,y,50,50); fill(175,5,75); ellipse(x,y,35,35); fill(175,5,65); ellipse(x,y,20,20); stroke(175,5,85); strokeWeight(6); fill(175,5,85); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,20,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gear4K(float x, float y) { strokeWeight(15); noFill(); stroke(175,15,55); ellipse(x, y, 135, 135); ellipse(x, y, 90, 90); strokeWeight(15); line(x,y-70,x,y+70); line(x-70,y,x+70,y); noStroke(); fill(175,15,55); ellipse(x,y,50,50); fill(175,15,55); ellipse(x,y,35,35); fill(175,15,55); ellipse(x,y,20,20); stroke(175,15,55); strokeWeight(6); fill(175,15,55); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,20,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gear5(float x, float y) { stroke(175,5,85); strokeWeight(15); noFill(); ellipse(x, y, 110, 110); strokeWeight(10); ellipse(x, y, 75, 75); strokeWeight(15); line(x,y-50,x,y+50); line(x-50,y,x+50,y); noStroke(); fill(175,5,85); ellipse(x,y,50,50); fill(175,5,75); ellipse(x,y,30,30); fill(175,5,65); ellipse(x,y,15,15);//円と中心線 stroke(175,5,85); strokeWeight(6); fill(175,5,85); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gear5K(float x, float y) { stroke(175,15,55); strokeWeight(15); noFill(); ellipse(x, y, 110, 110); strokeWeight(10); ellipse(x, y, 75, 75); strokeWeight(15); line(x,y-50,x,y+50); line(x-50,y,x+50,y); noStroke(); fill(175,15,55); ellipse(x,y,50,50); fill(175,15,55); ellipse(x,y,30,30); fill(175,15,55); ellipse(x,y,15,15);//円と中心線 stroke(175,15,55); strokeWeight(6); fill(175,15,55); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gear6(float x, float y) { stroke(175,5,85); strokeWeight(15); noFill(); ellipse(x, y, 110, 110); strokeWeight(10); rect(x-33,y-33,65,65); strokeWeight(10); line(x,y-50,x,y+50); line(x-50,y,x+50,y); line(x-40,y-40,x+40,y+40); line(x+40,y-40,x-40,y+40); noStroke(); fill(175,5,85); ellipse(x,y,50,50); fill(175,5,75); ellipse(x,y,30,30); fill(175,5,65); ellipse(x,y,15,15);//円と中心線 stroke(175,5,85); strokeWeight(6); fill(175,5,85); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gear6K(float x, float y) { stroke(175,15,55); strokeWeight(15); noFill(); ellipse(x, y, 110, 110); strokeWeight(10); rect(x-33,y-33,65,65); strokeWeight(10); line(x,y-50,x,y+50); line(x-50,y,x+50,y); line(x-40,y-40,x+40,y+40); line(x+40,y-40,x-40,y+40); noStroke(); fill(175,15,55); ellipse(x,y,50,50); fill(175,15,55); ellipse(x,y,30,30); fill(175,15,55); ellipse(x,y,15,15);//円と中心線 stroke(175,15,55); strokeWeight(6); fill(175,15,55); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gearK2 (float x, float y) { noFill(); strokeWeight(20); stroke(175,20,45); ellipse(x, y, 140, 140); strokeWeight(10); noStroke(); fill(175,20,45); ellipse(x,y,50,50); ellipse(x,y-45,50,50); ellipse(x,y+45,50,50); ellipse(x-45,y,50,50); ellipse(x+45,y,50,50); fill(175,20,45); ellipse(x,y,30,30); //円と中心穴 stroke(175,20,45); strokeWeight(6); fill(175,20,45); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gear2K2 (float x, float y) { strokeWeight(20); noFill(); stroke(175,20,45); ellipse(x, y, 100, 100); strokeWeight(20); line(x,y-50,x,y+50); line(x-50,y,x+50,y); noStroke(); fill(175,20,45); ellipse(x,y,50,50); fill(175,20,45); ellipse(x,y,30,30); stroke(175,20,45); strokeWeight(6); fill(175,20,45); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gear4K2 (float x, float y) { strokeWeight(15); noFill(); stroke(175,20,45); ellipse(x, y, 135, 135); ellipse(x, y, 90, 90); strokeWeight(15); line(x,y-70,x,y+70); line(x-70,y,x+70,y); noStroke(); fill(175,20,45); ellipse(x,y,50,50); fill(175,20,45); ellipse(x,y,35,35); fill(175,20,45); ellipse(x,y,20,20); stroke(175,20,45); strokeWeight(6); fill(175,20,45); rect(x-15,y+70,25,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); rotate(PI/4); rect(x-15,y+70,20,25); rect(x-15,y-95,25,25); rect(x+70,y-15,25,25); rect(x-95,y-15,25,25); } void gear5K2 (float x, float y) { stroke(175,20,45); strokeWeight(15); noFill(); ellipse(x, y, 110, 110); strokeWeight(10); ellipse(x, y, 75, 75); strokeWeight(15); line(x,y-50,x,y+50); line(x-50,y,x+50,y); noStroke(); fill(175,20,45); ellipse(x,y,50,50); fill(175,20,45); ellipse(x,y,30,30); fill(175,20,45); ellipse(x,y,15,15);//円と中心線 stroke(175,20,45); strokeWeight(6); fill(175,20,45); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); } void gear6K2 (float x, float y) { stroke(175,20,45); strokeWeight(15); noFill(); ellipse(x, y, 110, 110); strokeWeight(10); rect(x-33,y-33,65,65); strokeWeight(10); line(x,y-50,x,y+50); line(x-50,y,x+50,y); line(x-40,y-40,x+40,y+40); line(x+40,y-40,x-40,y+40); noStroke(); fill(175,20,45); ellipse(x,y,50,50); fill(175,20,45); ellipse(x,y,30,30); fill(175,20,45); ellipse(x,y,15,15);//円と中心線 stroke(175,20,45); strokeWeight(6); fill(175,20,45); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); rotate(PI/4); triangle(x,y+80,x-15,y+50,x+15,y+50); triangle(x,y-80,x-15,y-50,x+15,y-50); triangle(x+80,y,x+50,y-15,x+50,y+15); triangle(x-80,y,x-50,y-15,x-50,y+15); }