xxxxxxxxxx
function setup() {
createCanvas(600, 600);
frameRate(30);
colorMode(HSB, 360, 100, 100, 1.0);
}
function draw() {
const t = radians(frameCount / 20);
background(0, 0, 5);
stroke(0, 0, 98);
strokeWeight(5);
const mv = createVector(width / 2, height / 2);
const n = 96;
for (let i = 1; i < n; i++) {
const ip = i / n;
const a = noise(ip * 0.2, -t) * 32 * TAU;
const av = p5.Vector.fromAngle(a);
av.setMag((sin(t * 10) + 1) * width / 3);
const v = p5.Vector.add(mv, av);
push();
translate(mv.x, mv.y);
rotate(a);
let distance = 32;
let rw = 1;
const pn = 8;
for (let p = 0; p < pn; p++) {
noStroke();
fill(0, 0, 98);
const n = noise((p / pn - t) * 0.002)
rectMode(CENTER);
rect(n, distance, rw, 4);
distance = distance * 1.618;
rw = rw / 1.3;
}
pop();
stroke(50, 90, 85, 0.5);
line(mv.x, mv.y, v.x, v.y);
}
}