xxxxxxxxxx
59
let outer;
let angleZ = 0;
let angleY = 0;
let angle = 0;
let rad = 0;
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
angleMode(DEGREES);
frameRate(12);
outer = width * 0.1;
}
function draw() {
background(42);
push();
rotate(-angle / 50);
noFill();
strokeWeight(25);
stroke(125, 20);
sphere(rad + 100, 10, 10);
rad += sin(angle);
pop();
for (let i = 0; i < 10; i++) {
beamy(i * 20, random(200));
}
push();
noStroke();
fill(0, 10);
sphere(rad + 114);
pop();
}
function beamy(rotation, growthFactor) {
push();
rotateZ(angleZ + rotation);
rotateY(angleY + rotation);
if (random() > 0.99) {
fill(255, 0, 0, 20);
strokeWeight(0.5);
stroke(255, 255, 255, 100);
box(25, outer, 20);
} else {
fill(255, 255, 255, 5);
strokeWeight(1);
stroke(255, 255, 255, 50);
box(40, outer + growthFactor * 2, 20);
}
angleZ += 0.01;
angleY += 0.5;
outer += sin(angle) * 2;
angle += 1;
pop();
}