xxxxxxxxxx
64
let dots = [];
let cols = ["#ffc857","#ee9550","#e9724c","#d74845","#c5283d","#a41c32","#471d33","#3e2e6d","#255f85","#269480"];
let dens = 10;
let x = 0;
let y = 0;
let count = 0;
let seed1 = 0;
let seed2 = 0;
function setup() {
createCanvas(1080, 1080);
background(0);
center = createVector(random(width), random(height));
dots[0] = new Dot(random(width), random(height));
blendMode(ADD)
}
function draw() {
for(steps = 0; steps < 5000; steps ++){
for(i = 0; i < dots.length; i++){
if(dots[i] !== undefined){
dots[i].update();
}
}
}
seed1 = seed1 + 0.005;
seed2 = seed2 + 0.01;
}
class Dot{
constructor(x,y){
this.pos = createVector(x, y);
this.vel = createVector(1, 0);
this.center = createVector(center.x, center.y); // this.center = createVector(width / 2, height / 2);
this.dist = p5.Vector.sub(this.pos, this.center);
this.life = 10000;
this.c = floor(random(cols.length));
this.col = undefined;
}
update(){
strokeWeight(1);
// this.c = floor(random(cols.length));
this.col = color(cols[this.c]);
this.col.setAlpha(5);
stroke(this.col);
// this.center = createVector(random(width), random(height));
this.dist = p5.Vector.sub(this.pos, this.center);
this.vel.setHeading(this.dist.heading() + HALF_PI + map(noise(this.pos.x / 100, this.pos.y / 100, this.c / 25), 0, 1, -0.25 * seed1, 0.5 * seed2));
this.pos.add(this.vel);
point(this.pos.x, this.pos.y);
this.life = this.life -1;
if(this.dist.mag() < 2 || this.life < 0){
dots[1] = new Dot(random(width), random(height));
// dots[this.index] = undefined;
dots.shift();
}
}
}