How to evaluate the union area of the multiple circles plotted in matrix form of centers and radii?
3 ビュー (過去 30 日間)
古いコメントを表示
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/917629/image.png)
Specially looking for the area inside the rectangle covered by the union of circles...
0 件のコメント
採用された回答
Matt J
2022 年 3 月 7 日
編集済み: Matt J
2022 年 3 月 7 日
An approximate calculation can be made as follows,
C={centreG1,centreG2,centreG3,centreG4,centreG5,centreG6};
p=cellfun(@polycircle,C,{radii});
Area=area(union(p))
function p=polycircle(center,R)
p=translate( nsidedpoly(1e4,'Radius',R), center);
end
13 件のコメント
その他の回答 (1 件)
Steven Lord
2022 年 3 月 7 日
A different approach, one that doesn't involve cell arrays or cellfun:
center = randi(10, 6, 2); % 6 circle centers
radius = randi(5, 6, 1); % 6 circle radii
% Iterate backwards so the first assignment to C allocates
% the right number of elements
for whichCircle = size(center, 1):-1:1
% Approximate each circle with a 1000-sided polyshape
C(whichCircle) = nsidedpoly(1e3, ...
'Center', center(whichCircle, :), ...
'Radius', radius(whichCircle));
end
plot(C)
axis equal
A = area(union(C))
3 件のコメント
Steven Lord
2022 年 3 月 7 日
This sample code focused on creating some sample circles. You can take it and adapt it to suit your additional requirements.
参考
カテゴリ
Help Center および File Exchange で Line Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!