// 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()