herramientas computacionales para la matemática - utm.mxvero0304/hcpm/13-graficas-3d(segunda...
TRANSCRIPT
Herramientas computacionales para la matemática
MATLAB: Gráficas 3D
Verónica Borja Macías
Abril 2012
1
MatlabGráficas Tridimensionales
2
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
Ejemplo
>> surf(peaks);>> axis('square');>> axis('equal');>> axis('normal');>> title('Función de ejemplo: PEAKS');>> grid off;>> grid on;
MatlabGráficas Tridimensionales
3
hidden Mantiene las líneas posteriores ocultas o no dependiendo que utilicemos on u off.
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 offdeshabilita esta opción.
Ejemplo
>> mesh(peaks), hidden off;>> hidden on;
Ejemplo
>> surf(peaks), rotate3d on;
MatlabGráficas Tridimensionales
4
daspect devuelve las escalas de los ejes en la figuraactual.
daspect([x,y,z]) coloca las escalas de los ejes segúnsean los valores x, y y z (p/e, [1 1 3] significa que unaunidad en x es lo mismo que una unidad en y peroequivale a tres unidades en el eje z).
Ejemplo
>> surf(peaks);>> H=daspect %observe la escala actual>> daspect([1,1,1]); %cambie la escala
MatlabGráficas Tridimensionales
5
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 valorescmin y cmax especificados y caxis(auto) regresa a la escalaoriginal.
colorbar añade el mapa de colores activo a la figura, redimensionando los ejes
Ejemplo
>> [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)
MatlabGráficas Tridimensionales
6
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.
Ejemplo
>> 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;
MatlabGráficas Tridimensionales
7
[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.
MatlabGráficas de superficie: función colormap
8
Ejemplo
>> t=linspace(0,pi,40);>> r=1+sin(t);>> [X,Y,Z]=cylinder(r,40);>> surf(X,Y,Z);
MatlabGráficas de superficie: función colormap
9
Ejemplo
>> [X,Y,Z]=sphere(40);>> surf(X,Y,Z);>> daspect([1,1,1]);
MatlabGráficas Tridimensionales
10
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.
MatlabGráficas Tridimensionales
11
[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 podemosobtener proyecciones 3-D en varios planos p/e: x-z (vista lateral) az = 0, el = 0
y-z (vista lateral) az = 09, el = 0
MatlabGráficas de superficie: función colormap
12
Ejemplo
>> surf(peaks);>> view(3);
Ejemplo
>> surf(peaks);>> view([50,50,10]);
Ejemplo
>> surf(peaks);>> view(2);
Ejemplo
>> surf(peaks);>> view(45,45);
MatlabDibujo simplificado de funciones 3D
13
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.
MatlabDibujo simplificado de funciones 3D
14
La función ezplot3 dibuja líneas paramétricastridimensionales 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.
MatlabGráficas de superficie: función colormap
15
Ejemplo
>>ezplot3('sin(t)','cos(t)','t',[0,10*pi]);
MatlabDibujo simplificado de funciones 3D
16
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.
MatlabGráficas de superficie: función colormap
17
Ejemplo
>>ezsurf('sqrt(1-x^2-y^2)');
MatlabGráficas de superficie: función colormap
18
Ejemplo
>>ezsurf('s*cos(t)','s*sin(t)','t');
MatlabGráficas de superficie: función colormap
19
Ejemplo
>>ezsurf('exp(-s)*cos(t)','exp(-s)*sin(t)','t',[0,8,0,4*pi]);
MatlabDibujo simplificado de funciones 3D
20
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.
MatlabGráficas de superficie: función colormap
21
Ejemplo
>>ezsurf('sqrt(1-x^2-y^2)');>>ezsurf('sqrt(1-x^2-y^2)',20);
MatlabGráficas de superficie: función colormap
22
Ejemplo
>>ezsurf('sqrt(x^2 + y^2)');>>ezsurf('sqrt(x^2 + y^2)','circ');
MatlabAyuda para creación de gráficas
23
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.