and another circle packing question

조회 수: 3(최근 30일)
tx213 2013년 9월 22일
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
Walter Roberson
Walter Roberson 2013년 9월 22일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

Image Analyst
Image Analyst 2013년 9월 22일
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.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by