Calculate specified area for multiple circle
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
Can someone help me to calculate the area for the picture given?
The picture shown the generated approximated station (black dot) with its boundary (blue dot). The radius for each circle are the same while the location for each circle are not the same. I want to calculate the total area (area for all circle) as shown in picture. What im confusing is if i just calculate the area by using formula circle area times with total number of circle the area for my calculation is wrong. This is because of redundancy of area (overlapping between circle) that already calculated included in the calculation. I have try to calculate the overlapping area between two circle but there is too many multiple overlapping. I have seen some of suggestion like calculating overlapping area between two circle, intersection or etc but still i cant generate a full code to calculate the desired area. Can someone help me generate the code to calculate this area?
0 Kommentare
Antworten (1)
DGM
am 13 Nov. 2021
Bearbeitet: DGM
am 13 Nov. 2021
For the simple case where all circles are identical and the distance between centers is equal to the radius:
R = 70.7; % in whatever units
tiling = [7 7];
% area of circle
Afull = pi*R^2;
% area of overlap btw two circles at distance R
Aoverlap = (2*pi*R^2)/3 - sqrt(3*R^4)/2;
% area of wedge-shaped pieces
Awedge = (Afull-2*Aoverlap)/2;
% area of region within station grid
Arect = prod((tiling-1)*R);
% 3/4 circles at corners
Acorners = 3*Afull;
% remaining area of periphery
Aedge1 = 2*sum(Awedge*max(tiling-2,0));
Aedge2 = sum(Aoverlap*max(tiling-3,0));
Atotal = Arect + Acorners + Aedge1 + Aedge2
This can also be approximated using image processing methods.
R = 70.7;
N = [7 7];
A = zeros(600,600);
y = round(100:R:100+(N(1)-1)*R);
x = round(100:R:100+(N(2)-1)*R);
A(y,x) = 1;
A = bwdist(A)<=R;
nnz(A)
2 Kommentare
DGM
am 13 Nov. 2021
In the given diagram, the radius of each circle is 70.7 units. The spacing between centers is equal to the radius. The example I gave assumes this equivalence, therefore R is both the circle radius and horizontal/vertical spacing. The 'tiling' parameter simply denotes how many circles there are in the pattern (vertical, horizontal).
"There are multiple overlapping between more than 3 circle and the overlapping was not the same"
I'm not sure what you mean by that. The regions covered by more than one circle aren't treated any differently than regions covered only by one circle. You'll have to clarify what you mean by "not the same". If the configuration is something different than the diagram, you'd have to specify what it is.
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices 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!