plotting circles
165 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
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))';
Akzeptierte Antwort
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
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
Weitere Antworten (3)
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
am 10 Dez. 2023
It makes easier when adding it to the legend.
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.
Image Analyst
am 20 Jan. 2016
Bearbeitet: Image Analyst
am 15 Apr. 2022
There is now a function called viscircles(): http://www.mathworks.com/help/images/ref/viscircles.html?s_tid=srchtitle
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
0 Kommentare
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!