일부 원을 시각화 할 수 있도록 MATLAB 코드를 작성했습니다. 아래 코드와 첨부 된 그림을 출력으로보십시오.MATLAB에서 겹쳐진 원을 제거하십시오.
clc;
clear;
close all;
% X and Y of each Center
Xloc = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5];
Yloc = [1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5];
% Radius of each circle
radius = unifrnd(0,1,[1 numel(Xloc)]);
% Random colours
allColours = rand(numel(Xloc),3);
% Transform the data into position = [left bottom width height]
pos = [Xloc(:)-radius(:) Yloc(:)-radius(:) 2*radius(:)*[1 1]];
% Create and format the axes
H = axes;
hold on;
axis equal;
box on;
set(H,'XTickLabel',[],'YTickLabel',[]);
% Create the circles
for idx = 1:numel(Xloc);
rectangle(...
'Position',pos(idx,:),...
'Curvature',[1 1],...
'FaceColor',allColours(idx,:),...
'EdgeColor','none');
end
출력 도면은 (코드를 실행하면, 새로운 출력 대향 있도록 서클 '반경은, 무작위로 생성된다)이다
하면에서 볼 수 있듯이 그림, 서클 사이에 겹침이 있습니다. 서로를 겹치지 않게 센터를 서로 분리 할 수 있고 동시에 서로 원래 거리 (또는 비슷한 거리)를 유지할 수 있는지 궁금합니다. [Xloc Yloc]
반지름을 줄이십시오? –
@AnderBiguri, 반경은 원의 퍼짐을 나타냅니다. 가장 높은 반경이 가장 중요한 원을 의미합니다. –
나는 그 정보가 어떻게 도움이되는지 전혀 모릅니다. 당신은 서클을 가지고 있습니다. 당신은 그들의 위치를 바꾸고 싶지 않습니다. 만지지 않기를 원합니다. 그 (것)들을 더 작게하는 것이 유일한 선택이다 –