built with Processing
void setup() {
size (600, 700);
background(179, 217, 241);
frameRate(1);
smooth();
strokeWeight(0.5);
stroke(0);
}
void draw() {
// draw letter I
translate(55, -88);
drawSpiral();
translate(0, 78);
drawSpiral();
translate(0, 78);
drawSpiral();
translate(0, 78);
drawSpiral();
translate(0, 78);
drawSpiral();
translate(0, 78);
drawSpiral();
translate(0, 78);
drawSpiral();
translate(-62, 0);
drawSpiral();
translate(124, 0);
drawSpiral();
translate(0, -468);
drawSpiral();
translate(-124, 0);
drawSpiral();
}
void drawSpiral() {
float radius = 10;
int centX = 200;
int centY = 200;
float x,y;
float lastx = -999;
float lasty = -999;
for (float ang = 0; ang <= 200 + mouseY*5; ang += 12) {
radius += 0.2;
float rad = radians(ang);
x = centX + (radius * cos(rad) + random(10+mouseX/25));
y = centY + (radius * sin(rad) + random(7+mouseX/25));
if (lastx > -999) {
line (x,y, lastx, lasty);
}
lastx = x;
lasty = y;
}
}