xxxxxxxxxx
int amt = 1200, scalarIdx = 0;
float radius = 100, fX = random(100), fY = random(100), scalar = 0, scalarT = 0;
float [] scalarOptions = new float[]{0, .5, 1, 2, 4, 8, 16};
PVector pos;
void setup() {
size(400, 400, P2D);
frameRate(30);
smooth();
strokeWeight(1);
stroke(0, 64);
textSize(14);
textAlign(CENTER);
pos = new PVector(0, 0);
}
void draw() {
scalar = lerp(scalar, scalarT, .25);
pos.set((noise(fX)-.5)*width, (noise(fY)-.5)*height);
fX += .01;
fY += .01;
background(255);
translate(width*.5, height*.5);
for (int i=0; i<amt; i++) {
float rdns = radians(i*360.0/amt);
float initX = cos(rdns)*(radius+(noise(cos(rdns)*radius*.005 + frameCount*.01, sin(rdns)*radius*.005 - frameCount*.01)-.5)*radius*.5);
float initY = sin(rdns)*(radius+(noise(sin(rdns)*radius*.005 - frameCount*.01 + 6.43, cos(rdns)*radius*.005 + frameCount*.01 - 11.19)-.5)*radius*.5);
pushMatrix();
translate(initX, initY);
rotate(radians((i-amt/2)*scalar));
line(0, 0, noise(i*.005+frameCount*.005+12.09)*radius*4, 0);
popMatrix();
}
fill(255, 0, 0);
text("Hit SPACE to switch rotation scalar.", 0, height*.42);
text(scalarOptions[scalarIdx]+"x", 0, height*.47);
}
void keyReleased(){
if(key == ' '){
scalarIdx = (scalarIdx+1)%scalarOptions.length;
scalarT = scalarOptions[scalarIdx];
}
}