lunes, 25 de octubre de 2010

Cómo dibujar círculos y polígonos regulares

Para dibujar un círculo con Matlab, una posibilidad muy fácil, es hacerlo en coordenadas polares. Es decir:  

R = 1;
tita = (0:0.01:2.01*pi);
x = R*cos(tita);
y = R*sin(tita);

figure(1)
plot(x,y,'-b')
axis equal
axis([-1.5 1.5 -1.5 1.5])
set(gca,'XTick',[-1.5:0.5:1.5])
set(gca,'XTickLabel',{'-1.5','-1.0','-0.5','0.0','0.5','1.0','1.5'})
set(gca,'YTick',[-1.5:0.5:1.5])
set(gca,'YTickLabel',{'-1.5','-1.0','-0.5','0.0','0.5','1.0','1.5'})
set(gca,'Fontsize',10)

Por cierto, el valor de "tita" lo llevo hasta 2.01*pi, en vez de hasta solo 2.00*pi, para que el círculo se cierre (y no quede un pequeñito espacio en blanco). Además, he puesto "axis equal" para evitar que Matlab distorsione los ejes.


En realidad, no hemos dibujo un círculo, sino un polígono de 630 lados. Lo que a simple vista, es suficientemente parecido a un círculo.

Bueno, pues entonces, dibujar un polígono regular de n lados, se hace igual. Por ejemplo, para un pentágono:

n = 5;
R = 1;
tita = [0:(2*pi/n):2*pi];
x = R*cos(tita);
y = R*sin(tita);

figure(1)
plot(x,y,'-b')
axis equal
axis([-1.5 1.5 -1.5 1.5])
set(gca,'XTick',[-1.5:0.5:1.5])
set(gca,'XTickLabel',{'-1.5','-1.0','-0.5','0.0','0.5','1.0','1.5'})
set(gca,'YTick',[-1.5:0.5:1.5])
set(gca,'YTickLabel',{'-1.5','-1.0','-0.5','0.0','0.5','1.0','1.5'})
set(gca,'Fontsize',10)


Para evitar que el pentágono esté girado, podemos hacer que el valor de "tita" empiece en π/2:

n = 5;
R = 1;
tita = [0:(2*pi/n):2*pi]+pi/2;
x = R*cos(tita);
y = R*sin(tita);


Ahora ya es muy fácil hacer muchas figuras. Por ejemplo, una estrella de 5 puntas:

n = 5;
R = 1;
tita = [0:(4*pi/n):4*pi]+pi/2;
x = R*cos(tita);
y = R*sin(tita);

No hay comentarios: