xxxxxxxxxx
74
function setup() {
createCanvas(400, 400);
pointsLength = 660;
pointsX = [];
pointsY = [];
fillPointsList();
noLoop();
print(pointsX,pointsY)
inc = 0;
}
function getXVal(){
return random(width)
}
function getYVal(){
return random(height)
}
function fillPointsList(){
for (i=0;i<pointsLength;i++){
pointsX[i] = getXVal();
pointsY[i] = getYVal();
}
}
function getClosestPoint(arg){
let closestPt = 0;
let secondClosestPt = 0;
let closestDists = [width+height];
let closestDist = width+height;
let secondClosestDist = width+height;
for (let i=0;i<pointsLength; i++){
if (i != arg){
d = sqrt(pow(pointsX[i]-pointsX[arg],2) + pow(pointsY[i]-pointsY[arg],2));
/*for (let j = 0; j <closestPts.length; j++){
if (d < closestDists[j]){
closestDists.push()
}
}*/
if (d < closestDist){
secondClosestDist = closestDist;
secondClosestPt = closestPt;
closestDist = d;
closestPt = i;
} else if (d < secondClosestDist){
secondClosestDist = d;
secondClosestPt = i;
}
}
}
print(closestPt)
return [closestPt,secondClosestPt];
}
function draw() {
background(220);
for (let i=0;i<pointsLength;i++){
mousePressed();
}
}
function mousePressed() {
if (inc<pointsLength){
print(inc);
ellipse(pointsX[inc],pointsY[inc],3,3);
let closestI = getClosestPoint(inc);
print(closestI)
line(pointsX[inc],pointsY[inc],pointsX[closestI[0]],pointsY[closestI[0]]);
line(pointsX[inc],pointsY[inc],pointsX[closestI[1]],pointsY[closestI[1]]);
inc++;
}
}