Você está na página 1de 12

CAPITULO 09: GRAFICOS EN 3D Lic.

Amado Malca Villalobos

CAPITULO 09: GRAFICOS TRIDIMENSIONALES


Los graficos en 3D, son aquellas expresiones de la forma:
E x, y, z 0, x, y, z D 3
Donde D es un cierto dominio en R3, Esta grafica puede ser una curva o una superficie.

GRAFICO DE LINEA
Ahora vamos a graficar algunas curvas que deben estar parametrizadas, se hara con el comando de MatLab:
plot3, la sintaxis es como sigue.
plot 3( x, y, z,' especificaciones linea ',' propiedades ',' valores ')
- Las variables x, y, z representan los vectores con las coordenadas de los puntos.
- Los especificadores de lnea es opcional, definen el tipo y el color de lnea, y los marcadores.
- Las propiedades y valores se usan para especificar el grosor de lnea, el tamao y los colores del borde y el
relleno de los marcadores.
- Los especificadores de lnea, las propiedades y los marcadores son los mismos que para grficos en 2D.
Ejemplo01: Graficar x 2 y 2 2 z , la cual puede ser parametrizada mediante las ecuaciones:
x t sen 2t
y t cos 2t 0 t 6
z 0,5t
Solucin:

Curva3d01.m En MatLab
>> curva3d01
t=0:0.1:6*pi;
x=sqrt(t).*sin(2*t);
y=sqrt(t).*cos(2*t);
z=0.5*t; 10

plot3(x,y,z,'r','LineWidth',1)
8
grid on
xlabel('x'); 6

ylabel('y');
z

4
zlabel('z');
2

0
5 5

0 0

-5 -5
y x

Ejemplo 02: Graficar la espiral logartmica: f (t ) ( Aeb t cos(t ), Aeb t sen(t ), C t ), t R


Donde f (t ) (e0.2 t sin(0.8 t), e0.2 t cos(0.8 t), t), t [0,20]

Curva3d02.m En MatLab
clear,clf % borra curvas >> curva3d02
t = 0:0.1:20; % rango de t
r = exp(0.2*t); % parte de funcin
th=pi*t*0.8; % cambio de variable
z=t; % coordenada x 20
x=r.*sin(th); % coordenada y
y=r.*cos(th); % coordenada z 15

plot3(x,y,z) % Grafica la funcin 10


z

grid
xlabel('x');ylabel('y');zlabel('z'); 5

0
100

50 40
20
0
0 -20
-40
y -50 -60
x

09 grficos en 3D 1
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
Ejemplo 03: La posicin de una partcula en el tiempo viene dada por:
x 2 4 cos t cos t
x 2 4 cos t sin t 0 t 20
zt 2

Curva3d03.m En MatLab
t=0:0.1:200; >> curva3d03
x=(2+cos(t)).*cos(t);
y=(2+cos(t)).*sin(t);
z=t.^2; x 10
4

plot3(x,y,z,'r','LineWidth',1) 4

grid on
3
xlabel('x');
ylabel('y'); 2

z
zlabel('z');
1

0
4
2 3
0 2
1
-2 0
y -4 -1
x

Ejemplo 04: Curva que describe el movimiento de un objeto sobre un toro:


x A cos a t B cos b t
y A sen a t 0 t 100
z B sen b t
Curva3d04.m En MatLab
function w=curva3d04(A,B,a,b) >> curva3d04(1,2,2,1)
t=0:0.1:300*pi;
x=A*cos(a*t)+B*cos(b*t);
y=A*sin(a*t);
z=B*sin(b*t); 2

plot3(x,y,z,'r','LineWidth',1)
1
grid on
xlabel('x'); 0
z

ylabel('y');
-1
zlabel('z');
-2
1
0.5 3
2
0 1
-0.5 0
-1
y -1 -2
x

>> curva3d04(3,2,0.2,1) >> curva3d04(5,17,0.2,0.7)

20
2

10
1

0
z

0
z

-10
-1
-20
5
-2 40
4 20
0
2 5 0
-20
0 -5
0 y -40
x
-2
y -4 -5
x

09 grficos en 3D 2
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
Ejemplo 05: Graficaremos ahora la curva de Viviani, que es la interseccin de un cilindro y una esfera.
x a y 2 a 2
2
x 2 y 2 z 2 4a 2
x a 1 cos t
Una parametrizacin de esta curva es:
y a s e n t 2 t 2
z 2a sen t / 2

Curva3d05.m En MatLab
t=-2*pi:0.1:2*pi; >> curva3d05
x=1+cos(t);
y=sin(t);
z=2*sin(t/2);
plot3(x,y,z,'r','LineWidth',1) 2

grid on
1
xlabel('x');
ylabel('y'); 0

z
zlabel('z');
-1

-2
1
0.5 2
0 1.5
1
-0.5 0.5
y -1 0
x

Ejemplo 06: Ahora veremos una espiral esfrica:


x cos t cos 24t
y cos t sen 24t 0 t 4
z sen t
Curva3d06.m En MatLab
t=0:0.1:2*pi; >> curva3d06
x=cos(t).*cos(24*t);
y=cos(t).*sin(24*t);
z=sin(t);
plot3(x,y,z,'r','LineWidth' 1

,1) 0.5

grid on
xlabel('x'); 0
z

ylabel('y'); -0.5

zlabel('z');
-1
1
0.5 1
0 0.5
0
-0.5 -0.5
y -1 -1
x

09 grficos en 3D 3
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos

GRAFICA DE UNA CURVA EN R3, Y SUS VECTORES TANGENTES.


Ejemplo01: Graficar x y 2 2 z , la cual puede ser parametrizada mediante las ecuaciones:
2

1
x' sen 2t 2 t cos 2t
x t sen 2t 2 t
Derivando:
y t cos 2t 0 t 6 y'
1
cos2t 2 tsen 2t 0 t 6
z 0,5t 2 t
z ' 0,5
Para graficar un vector tangente en una curva tridimensional, se usa el comando: quiver3
Solucin:

Programa: grafico3d.m Ejecucion en MatLab


>> grafico3d
t=0:0.1:6*pi; Espiral con sus vectores tangentes

x=sqrt(t).*sin(2*t);
y=sqrt(t).*cos(2*t); 10

z=0.5*t; 8

plot3(x,y,z,'r','LineWidth',1) 6

Eje z
hold on 4

xlabel('Eje x')
2

ylabel('Eje y')
0
5
5
zlabel('Eje z') 0

-5 0
title('Espiral con sus vectores Eje y -10 -5
Eje x
tangentes')
t2=0:6*pi; Espiral con sus vectores tangentes
x2=sqrt(t2).*sin(2*t2); 6

y2=sqrt(t2).*cos(2*t2); 4
z2=0.5*t2;
u2=sin(2*t2)./(2*sqrt(t2))+2*sq 2

rt(t2).*cos(2*t2);
Eje y

0
v2=cos(2*t2)./(2*sqrt(t2))-
2*sqrt(t2).*sin(2*t2); -2

w2=0.5*ones(1,length(z2));
quiver3(x2,y2,z2,u2,v2,w2,1)
-4

grid -6
-5 0 5
Eje x

Ahora configurando la presentacin de los vectores tangentes, para ello se agrega una lnea adicional con el
comando: set
Espiral con sus vectores tangentes
Espiral con sus vectores tangentes

10
10
8
8

6
6
Eje z
Eje z

4
4

2 2

0 0
5 5
5 0 5
0

-5 0 -5 0

Eje y -10 -5 Eje y -10 -5


Eje x Eje x

09 grficos en 3D 4
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos

Programa: grafico3d.m Ejecucion en MatLab


Linea punteada y color negro Linea punteada y color cyan.
t=0:0.1:6*pi; t=0:0.1:6*pi;
x=sqrt(t).*sin(2*t); x=sqrt(t).*sin(2*t);
y=sqrt(t).*cos(2*t); y=sqrt(t).*cos(2*t);
z=0.5*t; z=0.5*t;
plot3(x,y,z,'r','LineWidth',1) plot3(x,y,z,'r','LineWidth',1)
hold on hold on
xlabel('Eje x') xlabel('Eje x')
ylabel('Eje y') ylabel('Eje y')
zlabel('Eje z') zlabel('Eje z')
title('Espiral con sus vectores title('Espiral con sus vectores
tangentes') tangentes')
t2=0:6*pi; t2=0:6*pi;
x2=sqrt(t2).*sin(2*t2); x2=sqrt(t2).*sin(2*t2);
y2=sqrt(t2).*cos(2*t2); y2=sqrt(t2).*cos(2*t2);
z2=0.5*t2; z2=0.5*t2;
u2=sin(2*t2)./(2*sqrt(t2))+2*sqrt(t u2=sin(2*t2)./(2*sqrt(t2))+2*sqrt(t2)
2).*cos(2*t2); .*cos(2*t2);
v2=cos(2*t2)./(2*sqrt(t2))- v2=cos(2*t2)./(2*sqrt(t2))-
2*sqrt(t2).*sin(2*t2); 2*sqrt(t2).*sin(2*t2);
w2=0.5*ones(1,length(z2)); w2=0.5*ones(1,length(z2));
h=quiver3(x2,y2,z2,u2,v2,w2,1); h=quiver3(x2,y2,z2,u2,v2,w2,1);
set(h,'LineStyle',':','Color','k'); set
grid (h,'LineStyle',':','Color','g','Marke
r','*');
grid

09 grficos en 3D 5
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos

GRAFICOS DE MALLA Y DE SUPERFICIE

Se usan para representar una funcin de la forma z f x, y , x, y a, b c, d


Creacin de una rejilla en el plano xy
Lo primero es crear una malla de puntos (x,y) en el plano xy. Es decir dos matrices, en la primera las abscisas de los puntos
y en la segunda las ordenadas. Segn el grafico siguiente:

ym

y2

y1

y0

x0 x1 x2 x3 xn1 xn
Con el comando en MatLab: meshgrid
X , Y meshgrid x, y
Programa: superficier3.m En MatLab
x=1:1:5; >> superficier3
y=-4:1:3; X= 1 2 3 4 5
1 2 3 4 5
[X,Y]=meshgrid(x,y)
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Y = -4 -4 -4 -4 -4
-3 -3 -3 -3 -3
-2 -2 -2 -2 -2
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
>>

Calculo del valor z en cada punto de la rejilla


El siguiente paso es evaluar la funcin en cada punto de esta malla
2
Ejemplo con la funcin: z xy
x y2
2

09 grficos en 3D 6
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
Programa: superficier3.m En MatLab
x=1:1:5; >> superficier3
y=-4:1:3; X=
1 2 3 4 5
[X,Y]=meshgrid(x,y)
1 2 3 4 5
z=X.*Y.^2./(X.^2+Y.^2) 1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Y=
-4 -4 -4 -4 -4
-3 -3 -3 -3 -3
-2 -2 -2 -2 -2
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
z=
0.9412 1.6000 1.9200 2.0000 1.9512
0.9000 1.3846 1.5000 1.4400 1.3235
0.8000 1.0000 0.9231 0.8000 0.6897
0.5000 0.4000 0.3000 0.2353 0.1923
0 0 0 0 0
0.5000 0.4000 0.3000 0.2353 0.1923
0.8000 1.0000 0.9231 0.8000 0.6897
0.9000 1.3846 1.5000 1.4400 1.3235
>>

Creacin de grficos de malla y de superficie


Para graficar con MatLab tenemos dos opciones:

Un grafico de malla, con el comando mesh. Lo que realiza aqu es levantar las lneas que estn en plano xy
mesh X , Y , Z
Grafico de superficie con el comando surf. Aqu se levanta el plano que est en xy.
surf X , Y , Z
Ah van los ejemplos
Programa: mallar3.m Programa: superficier3.m
x=1:1:5; x=1:1:5;
y=-4:1:3; y=-4:1:3;
[X,Y]=meshgrid(x,y); [X,Y]=meshgrid(x,y);
Z=X.*Y.^2./(X.^2+Y.^2); Z=X.*Y.^2./(X.^2+Y.^2);
mesh(X,Y,Z) surf(X,Y,Z)
Grafico asociado Grafico asociado

2
2

1.5
1.5
1

1
0.5

0.5
0
4
2 5 0
0 4 4
3
-2 2 2 5
-4 1 0 4
3
-2 2
-4 1

09 grficos en 3D 7
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos

Modificando el color del grafico


Los colores de este grafico son en base a los valores que asume la funcin en los puntos del plano xy. Se podra volver
constante el color.
Para el color se puede modificar con el comando en MatLab colormap, cuya sintaxis es:
colormap C
Donde C es un vector de tres elementos, y estos elementos tienen una variacin de 0 a 1.

Ejemplo: C [0 0 0] Negro C [1 0 0] Rojo C [0 1 0] Verde C [0 0 1] Azul


C [1 1 0] Amarillo C [1 0 1] Magenta C [0.5 0.5 0.5] Gris
Ejemplo
Programa: mallar3.m Programa: superficier3.m
x=1:1:5; x=1:1:5;
y=-4:1:3; y=-4:1:3;
[X,Y]=meshgrid(x,y); [X,Y]=meshgrid(x,y);
Z=X.*Y.^2./(X.^2+Y.^2); Z=X.*Y.^2./(X.^2+Y.^2);
surf(X,Y,Z) mesh(X,Y,Z)
colormap([0.8 0.9 0.6]) colormap([0.9 0.1 0.7])
Grafico asociado Grafico asociado

2 2

1.5 1.5

1 1

0.5
0.5

0
4 0
4
2 5
2 5
0 4
3 0 4
-2 2 3
-2 2
-4 1
-4 1

Precisiones sobre el comando mesh:


- Cuando se ejecuta el comando mesh, la rejilla se activa por defecto. Para ocultarla se teclea: grid off . Para volver a
activar la rejilla: grid on
- Para dibujar una caja que rodee el grafico se usa el comando: box on
- Los comandos mesh y surf se pueden utilizar de la forma mesh Z surf Z
Ejemplo: Graficar la funcin: z 1,81,5 x2 y 2
sen x cos 0,5 y en [-3, 3] x [-3, 3].
Solucion: Graficando la superficie en formato malla.
Programa: malla02.m Programa: malla02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
0.2
Z=E.*sin(X).*cos(0.5*Y);
mesh(X,Y,Z)
Eje z

xlabel('Eje x') -0.2


ylabel('Eje y')
zlabel('Eje z') -0.4
4

title('Altibajos') 2
2
4
0
0
-2 -2
Eje y -4 -4
Eje x

09 grficos en 3D 8
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
Solucin: Graficando la superficie en formato superficie.
Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
Z=E.*sin(X).*cos(0.5*Y); 0.2

surf(X,Y,Z)

Eje z
0

xlabel('Eje x') -0.2


ylabel('Eje y')
zlabel('Eje z') -0.4
80

title('Altibajos') 60
60
80
40
40
20 20
Eje y 0 0
Eje x

Solucin: Grafico de malla con cortina


Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
0.2
Z=E.*sin(X).*cos(0.5*Y);
meshz(X,Y,Z)
Eje z

xlabel('Eje x') -0.2


ylabel('Eje y')
zlabel('Eje z') -0.4
4

title('Altibajos') 2
2
4
0
0
-2 -2
Eje y -4 -4
Eje x

Solucin: Grafico de malla con contorno


Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
0.2
Z=E.*sin(X).*cos(0.5*Y);
meshc(X,Y,Z)
Eje z

xlabel('Eje x') -0.2


ylabel('Eje y')
zlabel('Eje z') -0.4
4

title('Altibajos') 2
2
4
0
0
-2 -2
Eje y -4 -4
Eje x

Grafico de superficie con contorno


Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
0.2
Z=E.*sin(X).*cos(0.5*Y);
surfc(X,Y,Z)
Eje z

xlabel('Eje x') -0.2


ylabel('Eje y')
zlabel('Eje z') -0.4
80

title('Altibajos') 60
60
80
40
40
20 20
Eje y 0 0
Eje x

Grafico de superficie con alumbrado

09 grficos en 3D 9
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
Z=E.*sin(X).*cos(0.5*Y);
0.2

surfl(X,Y,Z)

Eje z
0

xlabel('Eje x') -0.2


ylabel('Eje y')
zlabel('Eje z') -0.4
80

title('Altibajos') 60
60
80
40
40
20 20
Eje y 0 0
Eje x

Grafico de cascada
Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
0.2
Z=E.*sin(X).*cos(0.5*Y);
waterfall(X,Y,Z)
Eje z
0

xlabel('Eje x') -0.2


ylabel('Eje y')
zlabel('Eje z') -0.4
4

title('Altibajos') 2
2
4
0
0
-2 -2
Eje y -4 -4
Eje x

Grafico de contorno 3D
Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 0.4

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
0.2
Z=E.*sin(X).*cos(0.5*Y);
Contour3(X,Y,Z,15) % el 15,
Eje z

% indica el numero de -0.2


% niveles, opcional
xlabel('Eje x') -0.4

ylabel('Eje y') 2
2
3
0 1
zlabel('Eje z') -2 -2
-1
0

title('Altibajos') Eje y -3
Eje x

Grafico de contorno 2D. Dibuja proyecciones de niveles de contorno sobre el plano xy


Programa: superficie02.m Programa: superficie02.m
x=-3:0.1:3; 3
Altibajos

y=-3:0.1:3;
[X,Y]=meshgrid(x,y); 2

E=1.8.^(-1.5*sqrt(X.^2+Y.^2));
Z=E.*sin(X).*cos(0.5*Y); 1

Contour(X,Y,Z,15) % el 15,
Eje y

0
% indica el numero de
% niveles, opcional -1

xlabel('Eje x')
ylabel('Eje y') -2

zlabel('Eje z') -3
title('Altibajos') -3 -2 -1 0
Eje x
1 2 3

09 grficos en 3D 10
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
Ejemplo: Ahora se construir la esfera bidimensional de radio 5 2 , con seis paos, que resultan ser la imagen de las
funciones: z 50 x 2 y 2 , z 50 x 2 y 2 , y 50 z 2 x 2 , y 50 z 2 x 2 , x 50 y 2 z 2 ,

x 50 y 2 z 2 , en el dominio 5,55,5
Programa: cubresfera.m
% Cubriendo arriba y abajo
x=-5:0.3:5;
y=-5:0.3:5;
[X,Y]=meshgrid(x,y);
Z=sqrt(50-X.^2-Y.^2);
surf(X,Y,Z),hold on
Z=-sqrt(50-X.^2-Y.^2);
surf(X,Y,Z),hold on
% cubriendo derecha e izquierda
x=-5:0.3:5;
z=-5:0.3:5;
[X,Z]=meshgrid(x,z);
Y=sqrt(50-X.^2-Z.^2);
surf(X,Y,Z), hold on
Y=-sqrt(50-X.^2-Z.^2);
surf(X,Y,Z),hold on
% Cubriendo atrs y adelante.
y=-5:0.3:5;
z=-5:0.3:5;
[Y,Z]=meshgrid(y,z);
X=sqrt(50-Y.^2-Z.^2);
surf(X,Y,Z),hold on
X=-sqrt(50-Y.^2-Z.^2);
surf(X,Y,Z),hold off
xlabel('Eje x')
ylabel('Eje y')
zlabel('Eje z')
title('Cubriendo la Esfera')

Cubriendo la Esfera

10

5
Eje z

-5

-10
10
5 10
0 5
0
-5 -5
Eje y -10 -10
Eje x

09 grficos en 3D 11
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
SUPERFICIES PARAMETRIZADAS
Graficando F X (u, v), Y (u, v), Z (u, v) 0,
% Un cilindro

clear
u=(0:0.1:3*pi)';
v=0:0.1:4;
X=sin(u)*ones(size(v));
Y=cos(u)*ones(size(v));
Z=ones(1,size(u))'*v;
surf(X,Y,Z)

GRAFICOS ESPECIALES
He aqu algunos opciones diferentes para una mejor comprensin de los comandos teclear:
help nombre_comando
Esfera
[ X Y Z]=sphere(30); % esfera unitaria
surf(X,Y,Z)

0.5

-0.5

-1
1
0.5 1
0 0.5
0
-0.5 -0.5
-1 -1

Cilindro
t=linspace(0,2*pi,30);
r=2+sin(t);
[ X Y Z]=cylinder(r);
surf(X,Y,Z)
axis square

0.8

0.6

0.4

0.2

0
4
2 4
0 2
0
-2
-2
-4 -4

09 grficos en 3D 12

Você também pode gostar