Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float cx,cy,diam;
- float rotationsPerSecond = 0.5;
- float angle = 0;
- void setup() {
- size(700,600);
- cx = (width-100)/2 + 100;
- cy = height / 2;
- diam = height;
- }
- void draw() {
- noStroke();
- int back = 0;
- background(255);
- pushMatrix();
- translate(cx,cy);
- angle += 1 / 60.0 / 1 * 2 * PI * rotationsPerSecond;
- rotate(angle);
- ellipseMode(CENTER);
- ellipse(0,0,diam,diam);
- int outers = 7;
- float diamshrink = 50;
- for(int i = 0; i < outers; i++) {
- float offset = i * diamshrink;
- fill(back);
- back = 255 - back;
- ellipse(offset/2,0,diam - offset, diam - offset);
- }
- float cx2 = (outers-1) * diamshrink / 2, cy2 = 0, diam2 = diam - (outers-1)*diamshrink;
- ellipse(cx2,cy2,5,5);
- pushMatrix();
- translate(cx2,cy2);
- rotate(PI);
- int inners = 6;
- for(int i = 1; i < inners; i++) {
- float offset = i * diamshrink;
- fill(back);
- back = 255 - back;
- ellipse(offset/2,0,diam2 - offset, diam2 - offset);
- }
- popMatrix();
- popMatrix();
- drawSlider();
- }
- void drawSlider() {
- rectMode(CENTER);
- float cx = 100 / 2, cy = height / 2, ch = height - 100, cw = 80;
- stroke(0);
- fill(0);
- rect(cx,cy,5,ch);
- float sliderY = constrain(mouseY,cy-ch/2,cy+ch/2);
- rect(cx,sliderY,cw,5);
- rotationsPerSecond = map(sliderY,cy+ch/2,cy-ch/2,-2,2);
- textAlign(CENTER,CENTER);
- textSize(20);
- text(""+round(rotationsPerSecond*10)/10.0,cx,cy-ch/2-30);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement