JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://unpkg.com/kd-tree-javascript@1.0.3/kdTree.js"></script>
JavaScript
function KDTEST1(){
let distance = (a,b) => {
return Math.pow(a.x-b.x,2)+Math.pow(a.y-b.y,2);
}
let checkLength = (tree, x = 0, y = 0) => {
let nearest = tree.nearest({"x":x,"y":y},1);
for(let near of nearest) {
console.log(`search [${x},${y}].. found: index:${near[0].index}, y:${near[0].y}`);
}
return nearest[0][0];
}
let points=[
{"x":-2.67,"y":2.41,"index":0},
{"x":-2.67,"y":3.41,"index":1},
{"x":-2.67,"y":4.41,"index":2},
{"x":-2.67,"y":5.52,"index":3},
{"x":-3.67,"y":2.41,"index":4},
{"x":-3.67,"y":3.41,"index":5},
{"x":-3.67,"y":4.41,"index":6},
{"x":-3.67,"y":5.52,"index":7}
]
let tree = undefined;
tree = new kdTree(points, distance, ["x","y"]);
/*
tree=new kdTree([], distance, ["x","y"]);
points.forEach(point=>{
tree.insert(point);
});
*/
let point = undefined;
let posx = 0;
let posy = 0;
for(let i = 0; i < 8; i++) {
point = checkLength(tree, posx, posy);
posx = point.x;
posy = point.y;
tree.remove(point);
}
}
KDTEST1()