Skip to content

Instantly share code, notes, and snippets.

@fiskurgit
Created May 12, 2016 08:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fiskurgit/6cacaebda68ff19dbbf42329979eb4f4 to your computer and use it in GitHub Desktop.
Save fiskurgit/6cacaebda68ff19dbbf42329979eb4f4 to your computer and use it in GitHub Desktop.
int step = 0;
int segmentCount = 70;
int startStep = 0;//offset the start position, not necessary but more interesting while drawing.
float pointDiameter = 0.25;
float plotRadius = 5;
float radiusIncrement = 6;
void setup(){
size(500, 500);
background(255);
noStroke();
}
void draw(){
step++;
float theta = (step + startStep) * TWO_PI / segmentCount;
float x = width/2 + cos(theta) * plotRadius;
float y = height/2 + sin(theta) * plotRadius;
float colorComponentA = map(x, 0, width, 100, 255);
float colorComponentB = map(y, 0, width, 200, 255);
fill(colorComponentA, (colorComponentA + colorComponentB)/2, colorComponentB);
ellipse(x, y, pointDiameter, pointDiameter);
if(step == segmentCount){
step = 0;
startStep++;
plotRadius += radiusIncrement;
segmentCount += 2;
//Control how the the plot points grow:
if(pointDiameter < 6 && plotRadius > 25){
pointDiameter+=0.25;
}
}
if(plotRadius >= width/2 - width/10){
noLoop();
println("fin");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment