affineplane-circlepack

1.0.0 • Public • Published

affineplane-circlepack

NPM Version License

Deterministic and order-preserving 2D circle packing algorithm for data visualization.

affineplane-circlepack social banner

Install

Install with npm or yarn:

$ npm install affineplane-circlepack
$ yarn add affineplane-circlepack

Usage

The basic usage is simple:

const pack = require('affineplane-circlepack')

const circles = [
  { x: 1, y: 0, r: 1 },
  { x: 2, y: 4, r: 2 },
  { x: 1, y: 5, r: 2 },
  ...
]

const packed = pack(circles)
// packed is an array that contains the same circles with x and y adjusted.

Asynchronic runs are good for packing large sets of circles in a non-blocking way:

pack(circles, (batch) => {
  console.log('A batch of packed circles fresh out of the oven.', batch)
}, () => {
  console.log('All packed.')
})

Contribute

Pull requests and bug reports are highly appreciated. Please test your contribution with the following scripts:

Run test suite:

$ npm run test

Run only linter:

$ npm run lint

See also

This library uses some tools from affineplane geometry library.

License

MIT

Package Sidebar

Install

npm i affineplane-circlepack

Weekly Downloads

4

Version

1.0.0

License

MIT

Unpacked Size

59.8 kB

Total Files

14

Last publish

Collaborators

  • xeli