xxxxxxxxxx
let scale = 20;
let heart;
let iValues = [];
let bValues = [];
let ibValues = [];
let xValues = [];
let yValues = [];
let X1 = 562.5;
let Y1 = 1000;
let X2 = 0;
let Y2 = 0;
let allValues = [];
let total = 0;
let timesRan = 0;
function setup() {
createCanvas(1125, 2436);
background(255,192,203);
// background(12.2, 0, 20);
}
function preload() {
heart = loadImage('black.png');
}
function draw() {
if (frameCount == 1) {
heart.resize(1125 / scale, 2436 / scale);
loadPixels();
heart.loadPixels();
for (y = 0; y < heart.height; y = y + 1) {
for (x = 0; x < heart.width; x = x + 1) {
let index = (x + y * heart.width) * 4;
let r = heart.pixels[index];
let g = heart.pixels[index + 1];
let b = heart.pixels[index + 2];
let brightness = (r + g + b) / 3;
let brightnessValue = (brightness - 255) * -1;
if(brightnessValue < 50){
brightnessValue = 0;
}else{
brightnessValue = 1;
}
bValues.push(brightnessValue);
iValues.push(index / 4);
xValues.push(x * scale);
yValues.push(y * scale);
allValues.push(index / 4);
if(brightnessValue > 0){
total = total + 1;
}
}
}
// let firstNum = firstWeightedRandom();
// X1 = xValues[firstNum];
// Y1 = xValues[firstNum];
}
if (frameCount % 1 == 0 && timesRan < total) {
let currentNumb = weightedRandom();
if(currentNumb > -1){
X2 = xValues[currentNumb];
Y2 = yValues[currentNumb];
stroke(22,165,150);
strokeWeight(2);
line(X2,Y2,X1,Y1);
X1 = X2;
Y1 = Y2;
}
}
}
function firstWeightedRandom(){
let numbs = [];
for (i = 0; i < iValues.length; i = i + 1) {
for(j = 0; j < bValues[i]; j = j + 1) {
numbs.push(iValues[i]);
}
}
return random(numbs);
}
function weightedRandom(){
let numbs = [];
for (i = 0; i < iValues.length; i = i + 1) {
if(dist(xValues[i],yValues[i],X1,Y1) < 40 && dist(xValues[i],yValues[i],X1,Y1) > 7.5 && allValues[i] > -0.5){
for(j = 0; j < bValues[i]; j = j + 1) {
numbs.push(iValues[i]);
}
}
}
let xxx = random(numbs)
allValues[xxx] = -1;
if(numbs.length = 0){
return -10
}else{
return xxx;
}
}