Find a bounding box for a set of points
Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.
A utility for managing a prototype chain
Estimate points on a bezier curve or a set of connexted bezier curves
No description provided.
Estimate points on a SVG path
Fast robust predicates for computational geometry
Convert a series of points to a monotone cubic spline
Draw perfect pressure-sensitive freehand strokes.
Operations for two-dimensional polygons.
Fill a polygon with lines
Takes a set of points and creates a Triangulated Irregular Network.
Fast 2D concave hull algorithm in JavaScript (generates an outline of a point set)
A very fast static 2D index for points based on kd-tree.
TypeScript definitions for d3-polygon
Finds points that fall within polygon(s).
Simple Semver and SemverRange classes
> Some friendly semver range utilities
Beautiful and expressive Sparklines component for React
Takes a set of points and partition them into clusters according to DBSCAN's data clustering algorithm.
A mesh replacement for `THREE.Line`. Instead of using GL_LINE, it uses a strip of billboarded triangles. This is a fork of [spite/THREE.MeshLine](https://github.com/spite/THREE.MeshLine), previously maintained by studio [Utsuboco](https://github.com/utsub
Takes a collection of points and a bounding box, and returns a collection of Voronoi polygons.
Takes a FeatureCollection of points and calculates the median center.
A very fast geospatial point clustering library.
Generates random map points, within an optional bounding box.
Finds points within a distance of a latitude/longitude point using bounding coordinates
creates (W)ell(K)nown(T)ext bounding boxes from points
Geographic point calculations including Haversine/Vincenty distance, bearing, midpoint, destination point, geohash encoding/decoding, cross-track distance, polygon containment, rhumb line navigation, bounding box, and DMS formatting. Zero dependencies.
Developed by Sebastian Madrid Ontiveros. Pure Ruby gem providing all Ordnance Survey British National Grid squares (100km, 50km, 10km, 5km, 1km) with hardcoded geometry sourced directly from the OS BNG Grids GeoPackage. Supports point-to-grid-ref lookup by easting/northing, bounds retrieval, grid square validation, listing with filters, and export to ESRI Shapefile format. No external dependencies. Uses only Ruby stdlib. Contains OS data. Crown copyright and database right 2025. Licensed under the Open Government Licence v3.0. Built to support hydraulic modelling and flood risk workflows in the UK. If this gem saves you time, consider buying Sebastian a coffee at https://buymeacoffee.com/smadrid
This gem finds minimum bounding spheres of a set of points. It is a port of Bernd Gaertner's C++ miniball library.
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets. It provides near-constant-time operations (bounded by the inverse Ackermann function) to add new sets, to merge existing sets, and to determine whether elements are in the same set. In addition to many other uses (see the Applications section), disjoint-sets play a key role in Kruskal's algorithm for finding the minimum spanning tree of a graph. A disjoint-set forest consists of a number of elements each of which stores an id, a parent pointer, and, in efficient algorithms, a value called the "rank". The parent pointers of elements are arranged to form one or more trees, each representing a set. If an element's parent pointer points to no other element, then the element is the root of a tree and is the representative member of its set. A set may consist of only a single element. However, if the element has a parent, the element is part of whatever set is identified by following the chain of parents upwards until a representative element (one without a parent) is reached at the root of the tree. Forests can be represented compactly in memory as arrays in which parents are indicated by their array index. Disjoint-set data structures model the partitioning of a set, for example to keep track of the connected components of an undirected graph. This model can then be used to determine whether two vertices belong to the same component, or whether adding an edge between them would result in a cycle. The Union–Find algorithm is used in high-performance implementations of unification. This data structure is used by the Boost Graph Library to implement its Incremental Connected Components functionality. It is also a key component in implementing Kruskal's algorithm to find the minimum spanning tree of a graph. Note that the implementation as disjoint-set forests doesn't allow the deletion of edges, even without path compression or the rank heuristic. Sharir and Agarwal report connections between the worst-case behavior of disjoint-sets and the length of Davenport–Schinzel sequences, a combinatorial structure from computational geometry.