xxxxxxxxxx
40
let quadtree;
let boundary;
let capacity = 4;
let num = 50;
function setup() {
createCanvas(400, 400);
boundary = new Rect(width/2, height/2, width/2, height/2)
quadtree = new QuadTree(boundary, capacity);
for (let i=0; i<num; i++) {
let p = new Point(random(width), random(height));
quadtree.insert(p);
}
}
function draw() {
background(220);
quadtree.display();
rectMode(CENTER);
noFill();
stroke(0, 255, 0);
// let range = new Rect(mouseX, mouseY, 30, 30);
// rect(range.x, range.y, range.w * 2, range.h * 2);
let range = new Circle(mouseX, mouseY, 30);
ellipse(range.x, range.y, range.r * 2, range.r * 2);
let points = [];
quadtree.query(range, points);
for (let i=0; i<points.length; i++) {
noStroke();
fill(0, 255, 0);
ellipse(points[i].x, points[i].y, 5, 5);
}
}