フィルターのクリア

Code to draw multiple circles that do not overlap

3 ビュー (過去 30 日間)
H Y
H Y 2018 年 1 月 12 日
編集済み: Rena Berman 2018 年 1 月 12 日
In Matlab, I try to draw circles randomly as shown in the following figure.
The current situation is drawn like this and I am in trouble because I have no idea how to make it a circle.
%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

採用された回答

michio
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
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 件)

H Y
H Y 2018 年 1 月 12 日
Thank you. It has worked. I would appreciate if you could give me advice regarding the another question which I have posted. There is no answer from anyone, and what should I do to improve the situation of it?

製品

Community Treasure Hunt

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

Start Hunting!