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 [faq] 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 && <5) [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 4 made by JoachimBreitner at 2020-05-17T15:43:57Z
Category Optimisation
Source repo head: darcs get http://darcs.nomeata.de/circle-packing
Uploaded by JoachimBreitner at 2017-06-20T23:36:16Z
Distributions LTSHaskell:0.1.0.6, NixOS:0.1.0.6, Stackage:0.1.0.6
Downloads 14563 total (53 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2017-06-20 [all 1 reports]

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