circle-packing: Simple heuristic for packing discs of varying radii in a circle

[ bsd3, library, optimisation ] [ Propose Tags ]

Given a number of circles with their radii, this packags tries to arrange them tightly, without overlap and forming a large circle.

Finding the optimal solution is NP hard, so only heuristics are feasible. This particular implementation is neither very good nor very fast, compared to the state of the art in research. Nevertheless it is simple to use and gives visually acceptable results.

You can explore the algorithm live at http://darcs.nomeata.de/circle-packing/ghcjs/ghcjs-demo.html.

Contributions of better algorithms are welcome.

Versions 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.1.0.6
Dependencies base (>=4.2 && <4.13) [details]
License BSD-3-Clause
Copyright 2012, Joachim Breitner
Author Joachim Breitner <mail@joachim-breitner.de>
Maintainer Joachim Breitner <mail@joachim-breitner.de>
Revised Revision 2 made by JoachimBreitner at Thu Oct 11 12:30:25 UTC 2018
Category Optimisation
Source repo head: darcs get http://darcs.nomeata.de/circle-packing
Uploaded by JoachimBreitner at Tue Jun 20 23:36:16 UTC 2017
Distributions LTSHaskell:0.1.0.6, NixOS:0.1.0.6
Downloads 10544 total (81 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-06-20 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees