Code to draw multiple circles that do not overlap
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
michio
le 12 Jan 2018
Modifié(e) : michio
le 12 Jan 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 commentaire
michio
le 12 Jan 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.
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur 多角形 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!