herramientas computacionales para la matemática - utm.mxvero0304/hcpm/13-graficas-3d(segunda...

23
Herramientas computacionales para la matemática MATLAB: Gráficas 3D Verónica Borja Macías Abril 2012 1

Upload: others

Post on 10-Oct-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

Herramientas computacionales para la matemática

MATLAB: Gráficas 3D

Verónica Borja Macías

Abril 2012

1

Page 2: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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;

Page 3: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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;

Page 4: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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

Page 5: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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)

Page 6: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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;

Page 7: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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.

Page 8: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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);

Page 9: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

MatlabGráficas de superficie: función colormap

9

Ejemplo

>> [X,Y,Z]=sphere(40);>> surf(X,Y,Z);>> daspect([1,1,1]);

Page 10: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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.

Page 11: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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

Page 12: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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);

Page 13: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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.

Page 14: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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.

Page 15: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

MatlabGráficas de superficie: función colormap

15

Ejemplo

>>ezplot3('sin(t)','cos(t)','t',[0,10*pi]);

Page 16: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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.

Page 17: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

MatlabGráficas de superficie: función colormap

17

Ejemplo

>>ezsurf('sqrt(1-x^2-y^2)');

Page 18: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

MatlabGráficas de superficie: función colormap

18

Ejemplo

>>ezsurf('s*cos(t)','s*sin(t)','t');

Page 19: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

MatlabGráficas de superficie: función colormap

19

Ejemplo

>>ezsurf('exp(-s)*cos(t)','exp(-s)*sin(t)','t',[0,8,0,4*pi]);

Page 20: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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.

Page 21: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

MatlabGráficas de superficie: función colormap

21

Ejemplo

>>ezsurf('sqrt(1-x^2-y^2)');>>ezsurf('sqrt(1-x^2-y^2)',20);

Page 22: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

MatlabGráficas de superficie: función colormap

22

Ejemplo

>>ezsurf('sqrt(x^2 + y^2)');>>ezsurf('sqrt(x^2 + y^2)','circ');

Page 23: Herramientas computacionales para la matemática - utm.mxvero0304/HCPM/13-Graficas-3D(segunda parte).pdf · Matlab. Dibujo simplificado de funciones 3D. 13 Matlab tiene un conjunto

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.