// String art, Version 0
// Start with a simple setup
// to draw lines...
// Version 1: Vary the stroke color
// Version 2: Vary the radius a little using noise
float angle;
float radius;
float cx, cy;
float x1, y1, x2, y2;
float strokeColor;
float strokeDelta; // Define this (V1)
float radiusNoise; // Add noise to radius (V2)
void setup() {
size(500, 500);
smooth();
background(255);
// Initial settings
cx = width/2;
cy = height/2;
radius = width/2;
angle = 0; // degrees
strokeColor = 0;
strokeDelta = 1; // stroke color will change by 1 (V1)
radiusNoise = random(10); // Variation in radius (V2)
} // setup
void draw() {
angle = angle - 3;
float theta = radians(angle);
// vary the radius a little (V2)
radiusNoise += 0.005;
radius = noise(radiusNoise)*width/2;
// compute the end points of line
x1 = cx + radius * cos(theta);
y1 = cy + radius * sin(theta);
x2 = cx + radius * cos(theta+PI);
y2 = cy + radius * sin(theta+PI);
// Draw the line
// Modify stroke color properties (V1)
strokeColor = strokeColor + strokeDelta;
if (strokeColor > 255 || strokeColor < 0) {
strokeDelta = strokeDelta * -1;
}
stroke(strokeColor);
strokeWeight(1);
line(x1, y1, x2, y2);
} // draw()