Come tracciare un cerchio in Matlab?

Mi piacerebbe sapere come posso tracciare un grafico dei cerchi in matlab conoscendo il centro e il raggio? Ho provato cerchi () che non sembra funzionare perché la mia versione MATLAB non ce l’ha. So che posso usare la funzione Rectangle per farlo, ma è un modo piuttosto complesso di farlo in quanto avrei bisogno di elaborare il punto più a sinistra ogni volta. Non c’è forse un modo più semplice per disegnare un cerchio semplicemente conoscendo il centro e il raggio?

grazie molto

Non ridere, ma il più semplice sarebbe usare la funzione di rectangle , in effetti;)

 %// radius r = 2; %// center c = [3 3]; pos = [cr 2*r 2*r]; rectangle('Position',pos,'Curvature',[1 1]) axis equal 

ma imposta la curvatura del rettangolo su 1 !

Il vettore position definisce il rettangolo, i primi due valori x e y sono nell’angolo in basso a sinistra del rettangolo. Gli ultimi due valori definiscono la larghezza e l’altezza del rettangolo.

 pos = [ [xy] width height ] 

L’ angolo in basso a sinistra del cerchio – sì, questo cerchio ha angoli, quelli immaginari però – è il centro c = [3 3] meno il raggio r = 2 che è [xy] = [1 1] . Larghezza e altezza sono uguali al diametro del cerchio, quindi width = 2*r; height = width; width = 2*r; height = width;

inserisci la descrizione dell'immagine qui


Nel caso non ti piaccia la scorrevolezza della soluzione di cui sopra, non c’è modo di aggirare usando il modo ovvio di disegnare un cerchio reale mediante l’uso di funzioni trigonometriche .

 %// number of points n = 1000; %// running variable t = linspace(0,2*pi,n); x = c(1) + r*sin(t); y = c(2) + r*cos(t); %// draw line line(x,y) %// or draw polygon if you want to fill it with color %// fill(x,y,[1,1,1]) axis equal 

inserisci la descrizione dell'immagine qui

Se vuoi un cerchio che non è rettangolo puoi usare l’ annotation

 center = [3, 4]; r = 2; pos = [center-r, 2*r 2*r]; annotation('ellipse', pos );