¿Cómo trazar un círculo en Matlab?
plot figure (2)
No te rías, pero lo más fácil sería usar la función de
rectangle
, de hecho;)
%// radius
r = 2;
%// center
c = [3 3];
pos = [c-r 2*r 2*r];
rectangle(''Position'',pos,''Curvature'',[1 1])
axis equal
¡pero establece la curvatura del rectángulo en 1 !
El vector de
position
define el rectángulo, los dos primeros valores
x
e
y
son la esquina inferior izquierda del rectángulo.
Los dos últimos valores definen el ancho y la altura del rectángulo.
pos = [ [x y] width height ]
La
esquina
inferior izquierda de su círculo, sí, este círculo tiene esquinas, aunque imaginarias, es el
centro
c = [3 3]
menos el radio
r = 2
que es
[xy] = [1 1]
.
El ancho
y la
altura
son iguales al
diámetro
del círculo, entonces
width = 2*r; height = width;
width = 2*r; height = width;
En caso de que no le guste la suavidad de la solución anterior, no hay forma de evitar el uso obvio de dibujar un círculo real mediante el uso de funciones trigonométricas .
%// 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
Me gustaría saber cómo puedo graficar círculos en matlab conociendo el centro y el radio. He intentado círculos () que no parece funcionar porque mi versión de matlab no lo tiene. Sé que puedo usar la función Rectángulo para hacerlo, pero es una forma bastante compleja de hacerlo, ya que necesitaría resolver el punto más a la izquierda cada vez. ¿No hay una manera más simple de dibujar un círculo SÓLO conociendo el centro y el radio?
muchas gracias
Si desea un círculo que no sea
rectangle
, puede usar
annotation
center = [3, 4];
r = 2;
pos = [center-r, 2*r 2*r];
annotation(''ellipse'', pos );