Sie sind auf Seite 1von 18

CAPITULO 09: GRAFICOS EN 3D Lic.

Amado Malca Villalobos


1

CAPITULO 09: GRAFICOS TRIDIMENSIONALES
Los graficos en 3D, son aquellas expresiones de la forma:
( ) ( ) , , 0, , , E x y z x y z D =

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.
3( , , , ' ', ' ', ' ') plot 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.

Ejemplo: Graficar
2 2
2 x y z = , la cual puede ser parametrizada mediante
las ecuaciones:
( )
( )
2
cos 2 0 6
0, 5
x t sen t
y t t t
z t

=
= _ _
=

Solucion:

Curvas3.m En MatLab
t=0:0.1:6*pi;
x=sqrt(t).*sin(2*t);
y=sqrt(t).*cos(2*t);
z=0.5*t;
plot3(x,y,z,'r','LineWidth',1)
grid on
xlabel('x');
ylabel('y');
zlabel('z');
>> curvas3
>>
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
2

Grafica de ] 20 , 0 [ t ), t ), t 8 . 0 cos( e ), t 8 . 0 sin( e ( ) t ( f
t 2 . 0 t 2 . 0

clear,clf % borra las curvas graficadas y redibuja los ejes
t = 0:0.1:20; % Indica el rango del parmetro t
r = exp(0.2*t); % una parte de la funcin a graficar
th=pi*t*0.8; % un cambio de variable
z=t; % Indica la funcin de la coordenada x
x=r.*sin(th); % Indica la funcin de la coordenada y
y=r.*cos(th); % Indica la funcin de la coordenada z
plot3(x,y,z) % Grafica la funcin
xlabel('x');ylabel('y');zlabel('z');




-5
0
5
-5
0
5
0
2
4
6
8
10
x
y
z
-60
-40
-20
0
20
40
-50
0
50
100
0
5
10
15
20
x
y
z
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
3
Ejemplo:La posicin de una particula en el tiempo viene dada por:
( ) ( ) ( )
( ) ( ) ( )
2
2 4cos cos
2 4cos sin 0 20
x t t
x t t t
z t
=
= _ _
=


t=0:0.1:200;
x=(2+cos(t)).*cos(t);
y=(2+cos(t)).*sin(t);
z=t.^2;
plot3(x,y,z,'r','LineWidth',1)
grid on
xlabel('x');
ylabel('y');
zlabel('z');


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. Con el comando en MatLab: meshgrid
[ [ ( ) , , X Y meshgrid x y =

Ejemplo:
x=1:1:5;
y=-4:1:3;
[X,Y]=meshgrid(x,y)

Obteniendose
-1
0
1
2
3
-4
-2
0
2
4
0
1
2
3
4
x 10
4
x
y
z
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
4
>> grafico06
X =
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
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
Ejemplo con la funcin:
2
2 2
xy
z
x y
=


x=1:1:5;
y=-4:1:3;
[X,Y]=meshgrid(x,y)
z=X.*Y.^2./(X.^2+Y.^2)
El resultado ser una matriz rectangular, con los valores de las imgenes en los
puntos anteriores. Valo por usted mismo
>> grafico06
X =
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
1 2 3 4 5
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
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

x=1:1:5;
y=-4:1:3;
[X,Y]=meshgrid(x,y)
Z=X.*Y.^2./(X.^2+Y.^2);
mesh(X,Y,Z)
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
6


x=1:1:5;
y=-4:1:3;
[X,Y]=meshgrid(x,y)
Z=X.*Y.^2./(X.^2+Y.^2);
surf(X,Y,Z)

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 varian de 0 a 1.
Ejemplo:
[0 0 0] C =
Negro
[1 0 0] C =
Rojo
[0 1 0] C =
Verde
[0 0 1] C =
Azul
[1 1 0] C =
Amarillo
[1 0 1] C =
Magenta
1
2
3
4
5
-4
-2
0
2
4
0
0.5
1
1.5
2
1
2
3
4
5
-4
-2
0
2
4
0
0.5
1
1.5
2
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
7
[0.5 0.5 0.5] C=
Gris
Ejemplo
x=1:1:5;
y=-4:1:3;
[X,Y]=meshgrid(x,y)
Z=X.*Y.^2./(X.^2+Y.^2);
surf(X,Y,Z)
colormap([1 0 1])

x=1:1:5;
y=-4:1:3;
[X,Y]=meshgrid(x,y)
Z=X.*Y.^2./(X.^2+Y.^2);
mesh(X,Y,Z)
%surf(X,Y,Z)
colormap([1 0 1])


Precisiones sobre el comando mesh:
- Los colores pueden ser modificados y volverse constante, con el comando:
1
2
3
4
5
-4
-2
0
2
4
0
0.5
1
1.5
2
1
2
3
4
5
-4
-2
0
2
4
0
0.5
1
1.5
2
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
8
( ) [ ] colormap a b c

Donde a , b y c toman valores desde cero hasta 1.
- 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 comando mesh y surf se pueden utilizar de la forma
( ) mesh Z

( ) surf Z


Graficar la funcin:
( ) ( )
2 2
1,5
1,8 cos 0, 5
x y
z sen x y

=
en [-3, 3] x [-3, 3].
Grafico de malla
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
mesh(X,Y,Z)
%surf(X,Y,Z)
%colormap([1 0 1])

Grafico de superficie
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
%mesh(X,Y,Z)
surf(X,Y,Z)
%colormap([1 0 1])
-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
9

Grafico de superficie
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
%mesh(X,Y,Z)
surf(X,Y,Z)
%colormap([1 0 1])
xlabel('x');ylabel('y');zlabel('z');

Gafico de malla con cortina
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
meshz(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z');

-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
x
y
z
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
10


Grafico de malla con contorno
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
meshc(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z');



Grafico de superficie con contorno
x=-3:0.1:3;
y=-3:0.1:3;
-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
x
y
z
-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
x
y
z
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
11
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
surfc(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z');



Grafico de superficie con alumbrado
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
surfl(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z');

-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
x
y
z
-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
x
y
z
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
12
Grafico de cascada
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
waterfall(X,Y,Z)
xlabel('x');ylabel('y');zlabel('z');

Grafico de contorno 3D
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
contour3(X,Y,Z,15) % el cuarto elemento es el numero
de niveles (opcional)
xlabel('x');ylabel('y');zlabel('z');

Grafico de contorno 2D
Dibuja proyecciones de niveles de contorno sobre el plano xy
-4
-2
0
2
4
-4
-2
0
2
4
-0.4
-0.2
0
0.2
0.4
x
y
z
-3
-2
-1
0
1
2
3
-2
0
2
-0.4
-0.2
0
0.2
0.4
z
x
y
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
13
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=(1.8.^(-1.5*sqrt(X.^2+Y.^2))).*sin(X).*cos(0.5*Y);
contour(X,Y,Z,15) % el cuarto elemento es el numero
de niveles
xlabel('x');ylabel('y');zlabel('z');

LA ESFERA
x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z1=sqrt(18-X.^2-Y.^2);
%mesh(X,Y,Z)
surf(X,Y,Z1)
Z2=-sqrt(18-X.^2-Y.^2);
hold on
surf(X,Y,Z2)
%colormap([1 0 1])
xlabel('x');ylabel('y');zlabel('z');
x=-3:0.1:3;
z=-3:0.1:3;
[X,Z]=meshgrid(x,z);
Y1=sqrt(18-X.^2-Z.^2);
Y2=-sqrt(18-X.^2-Z.^2);
%mesh(X,Y,Z)
surf(X,Y1,Z)
surf(X,Y2,Z)

x
y
-3 -2 -1 0 1 2 3
-3
-2
-1
0
1
2
3
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
14


SUPERFICIES PARAMETRIZADAS
Graficando
( ) ( , ), ( , ), ( , ) 0, F X u v Y u v Z u v =

% 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)
-4
-2
0
2
4
-5
0
5
-5
0
5
x
y
z
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
15

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

Grafico de barras en 3D
Y=[1 6.5 7;2 6 7;3 5.5 7;4 5 7;3 4 7;2 3 7;1 2 7]
bar3(Y)
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
-4
-2
0
2
4
-4
-2
0
2
4
0
0.2
0.4
0.6
0.8
1
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
16

Grafico de Tallo o Lineas verticales 3D
t=0:0.1:20;
x=t;
y=sin(t);
z=t.^1.5;
stem3(x,y,z,'fill')
grid on
xlabel('x'),ylabel('y'),zlabel('z')

Grafico de dispersin 3D
t=0:0.2:20;
x=t;
y=sin(t);
z=t.^1.5;
scatter3(x,y,z,'filled')
grid on
colormap([0.1 0.1 0.1])
xlabel('Eje x'); ylabel('Eje y'), zlabel('Eje z')
1
2
3
1
2
3
4
5
6
7
0
2
4
6
8
0
5
10
15
20
-1
-0.5
0
0.5
1
0
20
40
60
80
100
x
y
z
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
17

Grafico de tarta 3D
X=[5 9 14 20 10 20] % frecuencias simples
explode=[1 1 0 0 1 0] % es un vector de la misma
longitud de X con unos y seros
% Un uno indica que la porcion
de la tarta
% estara separada del resto
secciones
pie3(X,explode)

Animacin de plot3
t=0:0.1:16*pi;
x=sqrt(t).*sin(2*t);
y=sqrt(t).*cos(2*t);
z=0.5*t;
comet3(x,y,z)
xlabel('x');
ylabel('y');
zlabel('z');

0
5
10
15
20
-1
-0.5
0
0.5
1
0
20
40
60
80
100
Eje x
Eje y
E
j
e

z
13%
26%
26%
18%
6%
12%
CAPITULO 09: GRAFICOS EN 3D Lic. Amado Malca Villalobos
18

Das könnte Ihnen auch gefallen