import java.util.Calendar; float r = 0; float x; float y; float easing = 0.05; float diameter; float angle = 0; boolean shape1 = true; boolean shape2 = false; boolean shape3 = false; boolean shape4 = false; boolean shape5 = false; boolean shape6 = false; boolean shape7 = false; boolean drawing = false; boolean start = true; void setup() { size(1280, 720); diameter = height - 10; background(random(50, 200), random(50, 200), random(50, 20)); rectMode(CENTER); ellipseMode(CENTER); smooth(); noLoop(); } void draw() { if (start == true) { fill(255,255,255,255); textSize(20); text("WELCOME TO CIRCLES", 150, height / 1.5 - 60); textSize(14); text("Click mouse to start drawing", 150, height / 1.5); text("Use number keys to change shapes while drawing", 150, height / 1.5 + 20); text("Press and hold F for different Fill mode", 150, height / 1.5 + 40); text("Use P key to Pause drawing", 150, height / 1.5 + 60); text("Use S key to Save a Screenshot", 150, height / 1.5 + 80); text("Click mouse again to restart drawing", 150, height / 1.5 + 100); text("Use M key to get back to this screen", 150, height / 1.5 + 120); noLoop(); } else { loop(); float d1 = 100 + (sin(angle) * diameter/10) + diameter/10; float targetX = mouseX; float dx = targetX - x; float targetY = mouseY; float dy = targetY - y; stroke(0, 150); if (keyPressed) { if (key == 'f' || key == 'F') { noFill(); } } else { fill(random(50, 255), random(50, 130), random(50, 130), 255); } if (abs(dx) > 1) { x += dx * easing; } if (abs(dy) > 1) { y += dy * easing; } translate(x, y); rotate(r); // KEY 1 Figur1 if (shape1 == true) { ellipse(0, 0, d1, d1/2); line(0, -5, 0, 5); line(-5, -5, -5, 5); line(5, -5, 5, 5); ellipse(50, 0, 8, 8); ellipse(-50, 0, 8, 8); ellipse(50, 0, 3, 3); ellipse(-50, 0, 3, 3); r = r + 0.15; } // KEY 2 Figur2 if (shape2 == true) { rect(0, 0, d1/1.5, d1/1.5); rect(50, 20, 6, 6); rect(50, -20, 6, 6); rect(-50, 20, 6, 6); rect(-50, -20, 6, 6); r = r + 0.1; } // KEY 3 Figur3 if (shape3 == true) { ellipse(0, 0, 180, 40); line(0, -5, 0, 5); line(-5, -5, -5, 5); line(5, -5, 5, 5); ellipse(-70, 0, 2, 2); ellipse(-60, 0, 2, 2); ellipse(70, 0, 2, 2); ellipse(60, 0, 2, 2); r = r + 0.05; } // KEY 4 Figur4 if (shape4 == true) { if (keyPressed) { if (key == 'f' || key == 'F') { fill(255, 255, 255, random(0, 160)); } } else { fill(random(100, 255), random(10, 150), random(10, 150), random(0, 160)); } beginShape(); vertex(random(5,200), random(60,124)); vertex(random(-40,20), random(5,60)); vertex(random(-70,300), random(-95,20)); endShape(CLOSE); r = r + 0.08; } // KEY 5 Figur4 if (shape5 == true) { fill (255); ellipse(0, 10, 7, 7); ellipse(0, 0, 10, 10); ellipse(0, -10, 7, 7); ellipse(0, -20, 3, 3); ellipse(0, 20, 3, 3); r = r + 0.3; } // KEY 6 Shape6 if (shape6 == true) { if (keyPressed) { if (key == 'f' || key == 'F') { stroke(255, 255, 255, 100); } } else { stroke(0, 0, 0, 100); } line(0, 0, d1, d1/2); r = r + 0.05; angle += 0.02; } // KEY 7 Shape7 if (shape7 == true) { if (keyPressed) { if (key == 'f' || key == 'F') { stroke(255, 255, 255, 100); } } else { stroke(random(255), random(50, 100), random(50, 100), random(20, 200)); } line(0, 0, d1, d1/2); line(10, -20, d1, d1); line(-10, 20, d1, d1); r = r + 0.05; angle += 0.02; } if (mousePressed == true) { background(random(50, 100), random(50, 100), random(50, 100)); } } } void mousePressed() { drawing = true; start = false; redraw(); } void keyReleased() { if (key == 'm' || key == 'M') { drawing = false; start = true; } if (key == 'p' || key == 'P') { noLoop(); if (key == 'p' || key == 'P') { redraw(); } } if (key == 's' || key == 'S') saveFrame(timestamp()+"_Skjermbilde_##.png"); if (key == '1') { shape1 = true; shape2 = false; shape3 = false; shape4 = false; shape5 = false; shape6 = false; shape7 = false; } if (key == '2') { shape1 = false; shape2 = true; shape3 = false; shape4 = false; shape5 = false; shape6 = false; shape7 = false; } if (key == '3') { shape1 = false; shape2 = false; shape3 = true; shape4 = false; shape5 = false; shape6 = false; shape7 = false; } if (key == '4') { shape1 = false; shape2 = false; shape3 = false; shape4 = true; shape5 = false; shape6 = false; shape7 = false; } if (key == '5') { shape1 = false; shape2 = false; shape3 = false; shape4 = false; shape5 = true; shape6 = false; shape7 = false; } if (key == '6') { shape1 = false; shape2 = false; shape3 = false; shape4 = false; shape5 = false; shape6 = true; shape7 = false; } if (key == '7') { shape1 = false; shape2 = false; shape3 = false; shape4 = false; shape5 = false; shape6 = false; shape7 = true; } } String timestamp() { Calendar now = Calendar.getInstance(); return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS", now); }