Skip to content

coocos/quadtree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quadtree 🌳

A quadtree implementation in TypeScript. Built for fun and giggles, not for production.

Example

The following example creates a quadtree with 256 random points within a 512 x 512 unit space and then returns all points within a 64 unit radius of the coordinates (256, 256):

import { construct, pointsWithinArea } from "./quadtree";

const width = 512;
const height = 512;

const randomPoints = Array.from({ length: 256 }, () => {
  return {
    x: Math.random() * width,
    y: Math.random() * height,
  };
});
const tree = construct(randomPoints, {
  x: 0,
  y: 0,
  width: width,
  height: height,
});
const nearbyPoints = pointsWithinArea(tree, {
  x: 256,
  y: 256,
  radius: 64,
});

Demo

This demo visualizes the quadtree using canvas and keeps adding new random points to the tree, thus branching the tree deeper and deeper.

About

Quadtree

Resources

License

Stars

Watchers

Forks

Contributors