and another circle packing question

6 Ansichten (letzte 30 Tage)
tx213
tx213 am 22 Sep. 2013
Hi guys, I am looking for some direction on how to approach a problem I am working on. Many thanks in advance for any insights/suggestions.
I am trying to pack circles (non-overlapping) within a larger circle. The location of the circles can be random. However, I have two constraints: (1) The radii of the circles must fall within a predetermined range. (2) The areal density of the packing must be 0.7
Essentially, this will be a problem in random-close-packing where there are two variables to optimize: radii and areal density.
  • The circles need not touch each other. They can, but that is not necessary. *
Any suggestions as to how might I begin this task? Or where should I look for more inspiration?
Again, many thanks.
  1 Kommentar
Walter Roberson
Walter Roberson am 22 Sep. 2013
I note that if you do manage to find a denser packing, then you can take all the circles and reduce their radii by a constant proportion (same for each) in order to get exactly 0.7. As area is proportional to square of radius, if current density is D, reduce each by a factor of sqrt(0.8/D) I think it would be.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 22 Sep. 2013
Strategy 1: start with large radii. For each circle get a center location at random within a radius of the larger radius (to make sure it will even fit inside!). Then examine any other circles you have already laid down and see if it will still fit without overlapping by seeing if the distance to the other circles is greater than the sum of the two radii. If it fits, subtract its area from the available area. Repeat the above process a number of times, the number depends on the size of the remaining area and the size of the circle you are trying to lay down. If you fail a certain number of times, then conclude no more will fit of that size and repeat the above with a smaller circle.
Strategy 2: Basically same as above but take the circle radius randomly from the allowable range instead of starting big and working your way smaller.
They are both Monte Carlo approaches of course. Quit trying to place circles when the area density becomes 0.7 or greater.

Weitere Antworten (0)

Kategorien

Mehr zu Least Squares finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by