xxxxxxxxxx
107
var inc = 0.1;
var scl = 10;
var cols, rows;
var zoff = 0;
var fr;
var golden_ratio_conjugate = 0.618033988749895;
var h = 0.2;
var particles_1 = [];
var particles_2 = [];
var particles_3 = [];
var particles_4 = [];
var particles_5 = [];
var flowfield;
function setup() {
createCanvas(600, 400);
cols = floor(width / scl);
rows = floor(height / scl);
fr = createP('');
flowfield = new Array(cols * rows);
h += golden_ratio_conjugate;
h %= 1;
for (var i = 0; i < 3000; i++) {
particles_1[i] = new Particle(20,12,h,0.4);
}
h += golden_ratio_conjugate;
h %= 1;
for (i = 0; i < 3000; i++) {
particles_2[i] = new Particle(30,10,h,0.6);
}
h += golden_ratio_conjugate;
h %= 1;
for (i = 0; i < 3000; i++) {
particles_3[i] = new Particle(40,6,h,0.7);
}
h += golden_ratio_conjugate;
h %= 1;
for (i= 0; i < 3000; i++) {
particles_4[i] = new Particle(50,3,h,0.8);
}
h += golden_ratio_conjugate;
h %= 1;
background(255);
}
function draw() {
var yoff = 0;
for (var y = 0; y < rows; y++) {
var xoff = 0;
for (var x = 0; x < cols; x++) {
var index = x + y * cols;
var angle = noise(xoff, yoff, zoff) * TWO_PI * 4;
var v = p5.Vector.fromAngle(angle);
v.setMag(1);
flowfield[index] = v;
xoff += inc;
stroke(0, 50);
}
yoff += inc;
zoff += 0.0003;
}
for (var i = 0; i < particles_1.length; i++) {
particles_1[i].follow(flowfield);
particles_1[i].update();
particles_1[i].edges();
particles_1[i].show();
}
for (i = 0; i < particles_2.length; i++) {
particles_2[i].follow(flowfield);
particles_2[i].update();
particles_2[i].edges();
particles_2[i].show();
}
for (i = 0; i < particles_3.length; i++) {
particles_3[i].follow(flowfield);
particles_3[i].update();
particles_3[i].edges();
particles_3[i].show();
}
for (i = 0; i < particles_4.length; i++) {
particles_4[i].follow(flowfield);
particles_4[i].update();
particles_4[i].edges();
particles_4[i].show();
}
for (i = 0; i < particles_5.length; i++) {
particles_5[i].follow(flowfield);
particles_5[i].update();
particles_5[i].edges();
particles_5[i].show();
}
}