0

I have multiple thousands of differently sized circles. I need to distribute them on a plane filling empty space as tight as possible.

I am using Unity and C#, but it doesn't really matter - I can use any adviced algorythm.

Every circle have predefined circleRadius Size difference between circles can be up to 10000 times. There is no limits for plane size, but smaller is better.

Surface shape does not really matter - it can be anything two-dimensional.

Result I need is to get array of circle positions.

Please push me in the right direction.

  • Could you try to formalize the goal as the current formulation is a bit vague. Something like minimizing the area of the convex hull while minimizing overlap? Btw, [this question](https://stackoverflow.com/questions/55241893/optimal-covering-with-non-uniform-discs) looks somewhat related. – Nico Schertler Mar 26 '19 at 01:58
  • 2
    This is an instance of the Circle Packing problem. It has been studied for a long time and is hard to solve exactly. However cheap approximations can be obtained by iterative relaxation, See for instance https://stackoverflow.com/questions/13339615/packing-different-sized-circles-into-rectangle-d3-js and this paper https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.5620&rep=rep1&type=pdf – Mauricio Cele Lopez Belon Mar 26 '19 at 03:37

0 Answers0