xxxxxxxxxx
49
function setup() {
createCanvas(400, 400);
pixelDensity(1);
loadPixels();
console.log("pixel density: " + (pixelDensity()).toString());
console.log("pixels count: " + (pixels.length/4).toString())
/*
for (let ni = 0; ni < pixels.length / 4; ni++) {
let gs = 0;
let x = (ni % height) - height / 2;
let y = (floor(ni / height)) - width / 2;
gs = gauss(x, y);
//console.log("x: " + x.toString() + ", y: " + y.toString());
pixels[4 * ni] = gs * 255;
pixels[4 * ni + 1] = gs * 255;
pixels[4 * ni + 2] = gs * 255;
pixels[4 * ni + 3] = 255;
}
*/
updatePixels();
}
function draw() {
loadPixels();
for (let ni = 0; ni < pixels.length / 4; ni++) {
let gs = 0;
let x = (ni % height) - height / 2;
let y = (floor(ni / height)) - width / 2;
gs = gauss(x, y);
//console.log("x: " + x.toString() + ", y: " + y.toString());
pixels[4 * ni] = gs * 255;
pixels[4 * ni + 1] = gs * 255;
pixels[4 * ni + 2] = gs * 255;
pixels[4 * ni + 3] = 255;
}
updatePixels();
}
function gauss(x, y) {
let xx,yy,xy,mx,my;
mx = mouseX/width*2-1;
my = mouseY/height*2-1;
//let M = math.matrix();
let v = math.multiply([[x,y]],math.usolve([[mx*mx+0.1, mx*my],[my*mx,my*my+0.1]],[[x],[y]]));
//console.log(exp(v[0,0]));
return exp(-(v) / 1000);
}