Herramientas computacionales para la matemática MATLAB: Gráficas 3D Verónica Borja Macías Abril 2012 1
Gráficas Tridimensionales axis Idéntico al utilizado con gráficos bidimensionales. title, xlabel, ylabel, zlabel, text, gtext, legend, ginput, grid,... Idénticos a los utilizados con gráficos bidimensionales >> surf(peaks); >> axis('square'); >> axis('equal'); >> axis('normal'); >> title('función de ejemplo: PEAKS'); >> grid off; >> grid on; 2
Gráficas Tridimensionales hidden Mantiene las líneas posteriores ocultas o no dependiendo que utilicemos on u off. >> mesh(peaks), hidden off; >> hidden on; hold, subplot,... Idénticos a los utilizados en gráficos 2D rotate3d on permite la rotación de la figura actual en cualquiera de sus ejes empleando el ratón y rotate3d off deshabilita esta opción. >> surf(peaks), rotate3d on; 3
Gráficas Tridimensionales daspect devuelve las escalas de los ejes en la figura actual. daspect([x,y,z]) coloca las escalas de los ejes según sean los valores x, y y z (p/e, [1 1 3] significa que una unidad en x es lo mismo que una unidad en y pero equivale a tres unidades en el eje z). >> surf(peaks); >> H=daspect %observe la escala actual >> daspect([1,1,1]); %cambie la escala 4
Gráficas Tridimensionales brighten(t) aclara (si 0 < t 1) u obscurece (si -1 t < 0) el mapa de colores actual. caxis([cmin cmax]) asigna los limites de color a los valores cmin y cmax especificados y caxis(auto) regresa a la escala original. colorbar añade el mapa de colores activo a la figura, redimensionando los ejes >> [X,Y,Z] = sphere; >> C = Z; surf(x,y,z,c), colorbar; >>brighten(-0.7); >>brighten(0.7); >> caxis([-1 0]); >> caxis([-1 3]) >> caxis(auto) 5
Gráficas Tridimensionales fill3(x,y,z,c) Dibuja el poliedro con vértices dados por los vectores x,y,z. El poliedro se rellena con el color dado por c. >> x=[-12-5 0 11]; >> y=[-3 3 5-1]; >> z=[2 5 9 11]; >> c=[1 0.66 0.33 0] >> fill3(x,y,z,c); >> rotate3d on; 6
Gráficas Tridimensionales [X,Y,Z]=cylinder(r,n) Devuelve las coordenadas correspondientes a la superficie de un cilindro de perfil r. Los radios del cilindro se toman del vector r, que contienen los radios en n puntos equidistantes en el eje del cilindro. Si no se especifica n, se utiliza n = 20. [X,Y,Z]=sphere(n) Devuelve n coordenadas igualmente espaciadas sobre una esfera unidad. 7
Gráficas de superficie: función colormap >> t=linspace(0,pi,40); >> r=1+sin(t); >> [X,Y,Z]=cylinder(r,40); >> surf(x,y,z); 8
Gráficas de superficie: función colormap >> [X,Y,Z]=sphere(40); >> surf(x,y,z); >> daspect([1,1,1]); 9
Gráficas Tridimensionales view(az,el) Establece el punto de vista de la gráfica. El escalar az determina el ángulo azimutal (en grados) medido en el plano x-y a partir del eje y negativo y definido positivo en contrasentido de las manecillas del reloj. El escalar el el ángulo de elevación (en grados) desde el plano x-y. 10
Gráficas Tridimensionales [az,el]=view Devuelve el punto de vista actual mediante el ángulo azimutal y el ángulo de elevación. view([x,y,z]) Sitúa el punto de vista actual en la posición r=[x y z]. view(2) coloca la vista aérea (az = 0, el = 90). view(3) coloca la vista por default (az = 37.5, el = 30). Eligiendo el azimut y la elevación correctos podemos obtener proyecciones 3-D en varios planos p/e: x-z (vista lateral) az = 0, el = 0 y-z (vista lateral) az = 09, el = 0 11
Gráficas de superficie: función colormap >> surf(peaks); >> view(3); >> surf(peaks); >> view([50,50,10]); >> surf(peaks); >> view(2); >> surf(peaks); >> view(45,45); 12
Dibujo simplificado de funciones 3D Matlab tiene un conjunto de funciones de dibujo simplificada, útil cuando se quiere obtener de forma muy rápida la gráfica de una función Estas funciones de manera automática: Crean los puntos necesarios para la graficación en un dominio por default (que puede modificarse) sin almacenar variables en el workspace. Evalúan las funciones que se indica y las grafican. Colocan nombres a los ejes y a la gráfica. 13
Dibujo simplificado de funciones 3D La función ezplot3 dibuja líneas paramétricas tridimensionales en la forma x(t), y(t) y z(t). Por defecto se utiliza el intervalo 0 < t < 2*pi. ezplot3(x,y,z) ezplot3(x,y,z,[t1,t2]) ezplot3(x,y,z,[t1,t2],'animate') dibuja la curva progresivamente En las sentencias anteriores x, y, y z pueden ser funciones o expresiones definidas como cadena de caracteres y t1 y t2 son los los extremos del intervalo de valores para t. 14
Gráficas de superficie: función colormap >>ezplot3('sin(t)','cos(t)','t',[0,10*pi]); 15
Dibujo simplificado de funciones 3D La funcción ezsurf se utiliza para realizar gráficas 3D de una función f(x,y). Por defecto se utilizan los intervalos 2*pi < x, y < 2*pi. La función f se puede definir por medio de una expresión en la que aparezcan x e y o con una función. ezsurf(f) ezsurf(f, [a,b]) ezsurf(f, [xmin,xmax,ymin,ymax]) La función ezsurf(x,y,z) permite también dibujar superficies paramétricas 3D, con parámetros s y t por defecto -2*pi < s,t < 2*pi. 16
Gráficas de superficie: función colormap >>ezsurf('sqrt(1-x^2-y^2)'); 17
Gráficas de superficie: función colormap >>ezsurf('s*cos(t)','s*sin(t)','t'); 18
Gráficas de superficie: función colormap >>ezsurf('exp(-s)*cos(t)','exp(-s)*sin(t)','t',[0,8,0,4*pi]); 19
Dibujo simplificado de funciones 3D ezsurf(,n) Con un último parámetro entero N se puede controlar la densidad del mallado con el que se dibuja. Por defecto N=60. Con el argumento 'circ' se dibuja en un dominio circular ezsurf(,'circ'). Otras funciones simplificadas para dibujo 3D son ezcontour, ezcontourf, ezmesh, ezsurfc y ezmeshc. 20
Gráficas de superficie: función colormap >>ezsurf('sqrt(1-x^2-y^2)'); >>ezsurf('sqrt(1-x^2-y^2)',20); 21
Gráficas de superficie: función colormap >>ezsurf('sqrt(x^2 + y^2)'); >>ezsurf('sqrt(x^2 + y^2)','circ'); 22
Ayuda para creación de gráficas Sugerencia Revisar la lista completa de funciones disponibles para gráficos 2D, 3D y gráficos especiales de matlab respectivamente con: >> help graph2d >> help graph3d >> help specgraph Ver la sección de ejemplos y demos. 23