MATLAB Answers


non overlapping random circles

Asked by jahanzaib ahmad on 20 Feb 2019
Latest activity Commented on by Adam Danz
on 29 May 2019
in search of a code which can generate output like this on matlab . and the result is in polyshapes ,centre and radius
circles are randomly distributed at the periphery of square .
input is number of circels,max radius , minimum radius and area of circles


Sign in to comment.

2 Answers

Answer by Adam Danz
on 20 Feb 2019
Edited by Adam Danz
on 21 Feb 2019
 Accepted Answer

The FEX contribution metioned by Matt J produces cirlces that are closely packed. I wrote an alternative function that plots circles with random centers that do not overlap but do not have the requirement to be densely packed. That function can be downloaded here:
Here are some notes that pertain to your needs:
  • One of the parameters you can set is whether the circles extend beyond the chosen border or not.
  • At the top of the code, in the comment section, I give an example of how to calculate the area of the circles by using the function outputs.
Please feel free to play around with that function and its options. If you have any further question or problems, please follow up here.
Below are some examples produced by this funciton.
190221 111913-Figure 4.jpg
*A previous version of this solultion included the source code. I've since edited that code and uploaded it to the file exchange.


@ Adam Danz thanks alot
Matt J
on 29 May 2019
Mehdi Mousavi's comment moved here:
I cannot run your function. actually I ran it as the following code:
[Cen,Rad] = bubblebath()
and the error is:
Error in bubblebath (line 131)
radMat = xyr(:,3) + xyr(:,3)';
please help me in using your code
Adam Danz
on 29 May 2019
What's the full error message (copy-pasted)?

Sign in to comment.

Matt J
Answer by Matt J
on 20 Feb 2019
Edited by Matt J
on 20 Feb 2019

Perhaps one of these FEX contributions would be helpful.


1pcf4.png its not a packing problem are cirlces are not fully inside box ,
Matt J
on 20 Feb 2019
But perhaps you can post-process the results according to your needs, e.g., discard circles above/below the minimum radius and randomly modulate the radii of circles that remain.
Adam Danz
on 20 Feb 2019
The circles aren't fully inside of the frame in the example you provided either.

Sign in to comment.