plotting circles

165 Ansichten (letzte 30 Tage)
Yasmin Tamimi
Yasmin Tamimi am 12 Mär. 2011
Kommentiert: Michelle Hirsch am 11 Dez. 2023
How can I plot circles, same radius and different centers, all in one graph. I used the following command to draw +,o,diamond: plot (x,y,'ro',u,v,'gd',A,B,'b+'); where x,y,u,v,A,B are all row vectors. And I want to add circles to that plot where the o will be the center.
  1 Kommentar
fatima ibrahim
fatima ibrahim am 29 Feb. 2020
function draw_circle1(x,y,R,c)
t =0:0.05:6.28;
x1 = (x +R*cos(t))';
y1= (x +R*sin(t))';

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Paulo Silva
Paulo Silva am 12 Mär. 2011
Here's a function to draw circles:
function circle(x,y,r)
%x and y are the coordinates of the center of the circle
%r is the radius of the circle
%0.01 is the angle step, bigger values will draw the circle faster but
%you might notice imperfections (not very smooth)
ang=0:0.01:2*pi;
xp=r*cos(ang);
yp=r*sin(ang);
plot(x+xp,y+yp);
end
If you want to add circles you must insert the command
hold on
before the circles being added.
  8 Kommentare
Rik
Rik am 3 Mai 2020
It's the step size. You can use the colon in two ways when you create an array:
start:stop
start:step:stop
Özgür Saglam
Özgür Saglam am 3 Mai 2020
Thank you very much!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Michelle Hirsch
Michelle Hirsch am 29 Jan. 2016
It's counter-intuitive, but this is actually really easy with the rectangle function. From the rectangle documentation :
pos = [2 4 2 2];
rectangle('Position',pos,'Curvature',[1 1])
axis equal
  5 Kommentare
Royi Avital
Royi Avital am 10 Dez. 2023
@Michelle Hirsch, It would be great if it had the DisplayName property like most other objects.
It makes easier when adding it to the legend.
Michelle Hirsch
Michelle Hirsch am 11 Dez. 2023
@Royi Avital I think it's more than just adding DisplayName - annotations like rectangle (intentionally) don't show up in legend since they are meant to be annotations, not data. Are you interested in being able to include annotations in legend? If so, please share more about your use case so I make sure we understand what you are thinking.

Melden Sie sich an, um zu kommentieren.


Chad Greene
Chad Greene am 21 Aug. 2014
This'll do the job.

Image Analyst
Image Analyst am 20 Jan. 2016
Bearbeitet: Image Analyst am 15 Apr. 2022
numCircles = 15;
x = 5 + randi(95, numCircles, 1);
y = 5 + randi(95, numCircles, 1);
radius = 2 * ones(numCircles, 1);
viscircles([x, y], radius);
grid on;
axis equal

Community Treasure Hunt

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

Start Hunting!

Translated by