lunes, 25 de octubre de 2010

Cómo trabajar con coordenadas polares

Muchas funciones son más fáciles de ser representadas en coordenadas polares. Por ejemplo, la cardiode:

ρ = R·(1+cos(θ+τ/4))

donde θ va de 0 a τ. (Ya sabes, τ = 2·π.)



Para dibujar una función en polares, podemos usar directamente la función "polar", como muestro a continuación:

R = 1;
tita = 0:0.01:2.0*pi;
rho = R*(1+cos(tita+pi/2));

figure(1)
polar(tita,rho,'m-')




Sin embargo, para editar el gráfico, es más fácil hacerlo en coordenadas cartesianas. Para ello, primero transformamos las variables "tita" y "rho", en cartesianas ("x" e "y"):

x = rho.*cos(tita);
y = rho.*sin(tita);


Y a continuación, representamos "x" e "y" normalmente:

figure(1)
hold on
box on
plot(x,y,'-','LineWidth',2,'Color',[0.5 0.05 0.9])
axis equal
axis([-1.5 1.5 -2.5 0.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',[-2.5:0.5:0.5])
set(gca,'YTickLabel',{'-2.5','-2.0','-1.5','-1.0','-0.5','0.0','0.5'})
set(gca,'Fontsize',10)


Nota: La línea "axis equal" es importante para que Matlab no deforme el tamaño de los ejes, como suele hacer por defecto

Por último, si queremos añadir los ejes, podemos hacerlo directamente así:

plot([-2 2],[0 0],'--','Color',[0.5 0.5 0.5])
plot([0 0],[-3 2],'--','Color',[0.5 0.5 0.5])


No hay comentarios: