Code to draw multiple circles that do not overlap
조회 수: 3 (최근 30일)
이전 댓글 표시
In Matlab, I try to draw circles randomly as shown in the following figure.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/168748/image.png)
The current situation is drawn like this and I am in trouble because I have no idea how to make it a circle.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/168749/image.png)
%the code of the current situation
t = linspace(0,2*pi,100);
figure
cx = 200 + (rand(20, 1) .* 1000); %center of the circle
cy = 300 + (rand(20, 1) .* 1000); %center
r = 2; %radius
plot(r*sin(t)+cx,r*cos(t)+cy)
y = r*cos(t)+cy
x = r*sin(t)+cx
for i =0:20
fill(x,y,'k')
%fill(r*sin(t)+cx,r*cos(t)+cy, 'k')
r = r+1;
end
i=i+1;
axis([0,1200,0,1200])
axis square
댓글 수: 0
채택된 답변
michio
2018년 1월 12일
편집: michio
2018년 1월 12일
When the inputs are matrices, the functions draw columns of Y versus columns of X. So could you try changing
fill(x,y,'k')
to
fill(x',y','k')
I just transposed the matrices, x and y. The radius might need to be a bigger number though.
P.S. If you perfer, posting questions in Japanese is also always welcome :)
댓글 수: 1
michio
2018년 1월 12일
I forgot to mention but you do not need the for loop.
for i =0:20
fill(x,y,'k')
end
Simply calling
fill(x',y','k');
would work.
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 多角形에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!