xxxxxxxxxx
43
const N = 64;
const SCALE = 4;
const ITERATIONS = 16;
let fluid;
let t = 0;
function setup() {
createCanvas(N * SCALE, N * SCALE);
fluid = new Fluid(N, ITERATIONS, 0.2, 0, 0.0000001);
}
function draw() {
background(0);
let cX = Math.floor(width / SCALE / 2);
let cY = Math.floor(height / SCALE / 2);
for (let j = -1; j <= 1; j++) {
for (let i = -1; i <= 1; i++) {
fluid.addDensity(cX + i, cY + j, random(50, 150));
}
}
for (let i = 0; i < 2; i++) {
let angle = noise(t) * TWO_PI * 2;
let vel = p5.Vector.fromAngle(angle);
vel.mult(0.2);
t += 0.01;
fluid.addVelocity(cX, cY, vel.x, vel.y);
}
fluid.update();
fluid.draw(SCALE);
fill(255);
text(frameRate(), 20, 20);
}
function mouseDragged() {
fluid.addDensity(Math.floor(mouseX / SCALE), Math.floor(mouseY / SCALE), 200);
fluid.addVelocity(Math.floor(mouseX / SCALE), Math.floor(mouseY / SCALE), mouseX - pmouseX, mouseY - pmouseY);
}