xxxxxxxxxx
52
var img;
function preload() {
img = loadImage("grad2.jpeg");
}
var points = [];
function setup() {
img.resize(800, 600);
createCanvas(img.width, img.height);
background(0, 0);
image(img, 0, 0, img.width, img.height);
for (var i = 0; i < 400; i++) {
var pos = createVector(random(width), random(height));
// var clr = color(random(255), random(255), random(255), 255);
points.push({
x: pos.x,
y: pos.y,
c: get(pos.x, pos.y)
});
}
loadPixels();
for (var x = 0; x < width * 4; x += 4) {
for (var y = 0; y < height * 4; y += 4) {
var nearest = Infinity;
var point = null;
for (var i = 0; i < points.length; i++) {
const dx = points[i].x-(x/4);
const dy = points[i].y-(y/4);
var d = dx*dx + dy*dy; //abs(dx) + abs(dy);
if (d < nearest) {
nearest = d;
point = points[i];
}
}
var index = x + y * width;
pixels[index] = red(point.c);
pixels[index + 1] = green(point.c);
pixels[index + 2] = blue(point.c);
}
}
updatePixels();
// for (var i = 0; i < points.length; i++) {
// fill(255, 0, 0);
// noStroke();
// ellipse(points[i].x, points[i].y, 5, 5);
// }
}