Code to draw multiple circles that do not overlap
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
michio
il 12 Gen 2018
Modificato: michio
il 12 Gen 2018
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 Commento
michio
il 12 Gen 2018
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.
Più risposte (1)
Vedere anche
Categorie
Scopri di più su 多角形 in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!