xxxxxxxxxx
94
/*
Animated particles with realistic color mixing
Uses: https://github.com/acamposuribe/p5.blender
Made by Luka Piskorec, 2023
*/
let dot_size = 200;
let temperature = 1.0; // positive value, influences initial speed celestials
let join_distance = 300;
let join_attraction = 0.03;
let celestials_a = [];
let celestials_b = [];
let celestials_c = [];
let celestials_d = [];
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
window_min_size = min(windowWidth, windowHeight);
frameRate(60);
// create celestials
for (let i = 0; i < 10; i++){
celestials_a.push(new Particle());
}
for (let i = 0; i < 10; i++){
celestials_b.push(new Particle());
}
for (let i = 0; i < 10; i++){
celestials_c.push(new Particle());
}
for (let i = 0; i < 10; i++){
celestials_d.push(new Particle());
}
}
function draw() {
background(240);
blender.color("#ffee11", 100);
// animate celestials
for (let i = 0; i < celestials_a.length; i++) {
celestials_a[i].moveParticle();
celestials_a[i].attractParticles(i, celestials_b);
celestials_a[i].showParticle();
}
blender.color("#00aaff", 100);
// animate celestials
for (let i = 0; i < celestials_b.length; i++) {
celestials_b[i].moveParticle();
celestials_b[i].attractParticles(i, celestials_c);
celestials_b[i].showParticle();
}
blender.color("#ff7700", 100);
// animate celestials
for (let i = 0; i < celestials_c.length; i++) {
celestials_c[i].moveParticle();
celestials_c[i].attractParticles(i, celestials_d);
celestials_c[i].showParticle();
}
blender.color("#ff55ff", 100);
// animate celestials
for (let i = 0; i < celestials_d.length; i++) {
celestials_d[i].moveParticle();
celestials_d[i].attractParticles(i, celestials_a);
celestials_d[i].showParticle();
}
blender.noBlend();
}