Le concept
Le curl noise est un champ de vecteurs dérivé du bruit de Perlin dont la divergence est nulle : les particules ne s'accumulent jamais ni ne créent de vide. On le calcule par : vx = dN/dy, vy = -dN/dx (dérivées partielles du bruit). Le résultat : des flux élégants et tourbillonnants.
Le code
// Curl noise particles
let pts = [];
function setup() { createCanvas(400,280); background(11,15,20);
for(let i=0;i<300;i++) pts.push({x:random(width),y:random(height)});
}
function draw() {
fill(11,15,20,12); noStroke(); rect(0,0,width,height);
let e=0.01, t=frameCount*0.003;
for(let p of pts){
let n1=noise(p.x*0.005,p.y*0.005,t);
let vx=(noise(p.x*0.005,(p.y+e)*0.005,t)-n1)/e;
let vy=-(noise((p.x+e)*0.005,p.y*0.005,t)-n1)/e;
p.x+=vx*2;p.y+=vy*2;
if(p.x<0||p.x>width||p.y<0||p.y>height){p.x=random(width);p.y=random(height);}
stroke(55,227,195,120); point(p.x,p.y);
}
}Pour aller plus loin
Explorez les autres cours gratuits sur la page Apprendre, ou réservez un appel pour discuter de votre projet.
Envie d'aller plus loin ?
Réserver un appel découverte →