XXXM 大致写了一下,但写的是正方形放大,球型放大可能麻烦一点
var originSize;
var changedSize;
function setup() {
createCanvas(640,640);
background(0);
originSize = 9;
changedSize = 81;
}
function draw() {
background(0);
push();
fill(255);
stroke(255);
textSize(20);
textAlign(CENTER);
text("hello world!",width/2,height/2);
pop();
loadPixels();
var l = [];
for(var i = mouseX-int(originSize/2);i <= mouseX+int(originSize/2);i++){
for(var j = mouseY-int(originSize/2);j <= mouseY+int(originSize/2);j++){
var c = get(i,j);
l.push(c);
}
}
// console.log(l);
for(var i = mouseX-int(changedSize/2);i <= mouseX+int(changedSize/2);i++){
for(var j = mouseY-int(changedSize/2);j <= mouseY+int(changedSize/2);j++){
var _i = int(abs(i-mouseX+int(changedSize/2))/originSize);
var _j = int(abs(j-mouseY+int(changedSize/2))/originSize);
var idx = getIndex(_i,_j,originSize);
// if (c[0]==0 && c[1] == 0 && c[2] == 0) {
// continue;
// }
set(i,j,l[idx]);
}
}
updatePixels();
}
function getIndex(i,j,s) {
return i*s+j;
}