non overlapping random circles

조회 수: 21 (최근 30일)
jahanzaib ahmad
jahanzaib ahmad 2019년 2월 20일
댓글: Adam Danz 2021년 1월 22일
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
Capture.PNG

채택된 답변

Adam Danz
Adam Danz 2019년 2월 20일
편집: Adam Danz 2019년 2월 21일
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.
  댓글 수: 10
DIVAKAR RAJU P V
DIVAKAR RAJU P V 2021년 1월 21일
can we maintain periodicity here. cutout portion of boundary should fall on opposite side
Adam Danz
Adam Danz 2021년 1월 22일
Yes, starting in bubblebath() vs 2.3.0 you can set edgeType=3 to wrap circles that expand beyond the frame edge.
Example:
rng('default') % for reproducibility
S = struct();
S.frameSize = [30 30];
S.circSize = 4;
S.nSizes = NaN;
S.edgeType = 3; % <-- flag to wrap edges
S.supressWarning = true;
bubblebath(S)

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

추가 답변 (1개)

Matt J
Matt J 2019년 2월 20일
편집: Matt J 2019년 2월 20일
Perhaps one of these FEX contributions would be helpful.
  댓글 수: 3
Matt J
Matt J 2019년 2월 20일
편집: Matt J 2019년 2월 20일
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
Adam Danz 2019년 2월 20일
The circles aren't fully inside of the frame in the example you provided either.

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

카테고리

Help CenterFile Exchange에서 Elementary Polygons에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by