You are on page 1of 29

GRFICOS EN 3D

I. CURVAS EN 3D

MatLab posee excelentes cualidades para la graficacin en 3D y tal vez sea esta una de las cosas ms
interesantes para su utilizacin como herramienta en las carreras de ingeniera. La primera instruccin de
grficos en tres dimensiones es la funcin plot3 que resulta similar al comando plot en grficos
bidimensionales.

I.1 Extensin de la representacin de funciones en 2D a 3D:

En el caso de 2D, a cada punto Xi le corresponde un valor de Yi y as se forman los pares ordenados (x,y)
que eran colocados en una grfica cartesiana mediante el comando plot.

Para el caso de 3D, se incorpora la coordenada Zi con la que se forman las tripletas (x, y, z) de modo que
ahora Plot3 es la funcin que ubica esas tripletas y tiene la siguiente sintaxis:
plot3 (X, Y, Z, Especificaciones de lnea,...).

Ejemplo:
a) Generar las 3 sinusoides (sin(x), sin(2x) y sin (3x) de la figura de la izquierda y b) Generar las mismas
3 sinusoides pero segn la figura de la derecha. En ambos casos, x vara entre 0 y 3*pi.

SOLUCIN:
clc; clear all,close all;
x = linspace(0,3*pi);

y1 = zeros(size(x));
y2 = ones(size(x));
y3 = 2* ones(size(x));

z1 = sin(x);
z2 = sin(2*x);
z3 = sin(3*x);

% PARTE (a):
plot3(x,y1,z1,'b',x,y2,z2,'k',x,y3,z3,'r')
grid on
xlabel('eje X'), ylabel('eje Y'), zlabel('eje Z')
title('sin(x), sin(2x), sin(3x)')
legend('z=sin(x) con y=0', 'z=sin(2x) con y=1', 'z=sin(3x) con y1=2')

% PARTE (b):
figure
plot3(x,z1,y1,'b',x,z2,y2,'k',x,z3,y3,'r')
grid on
xlabel('eje X'), ylabel('eje Y'), zlabel('eje Z')
title('sin(x), sin(2x), sin(3x)')
legend('z=sin(x) con y=0', 'z=sin(2x) con y=1', 'z=sin(3x) con y1=2')

DEBER 1: Realizar la animacin de una esfera movindose a lo largo de una curva en 3D: z=f(x,y)

clc; clear all,close all;

for t=0:0.1:2*pi
x1 = 0:0.1:2*pi;
y1 = cos(x1);
z1 = sin(x1);
plot3(x1,y1,z1,'b')
grid on
xlabel('eje X'), ylabel('eje Y'), zlabel('eje Z')
hold on
[x,y,z] = sphere;
surf(x+t,y+cos(t),z+sin(t));
daspect([1 1 1]);
pause (0.1);
cla('reset');
end
I.2 Construccin de grficos 3D en base a una malla de nodos:

Antes de generar la grilla, primeramente se determinan los vectores en x e y:

x= x1: PASO: xn;


y= y1: PASO: yn;

Con estos vectores, la grilla que se desea generar quedara de la siguiente manera:

(x1,y1) (x1, y2) (x1,yn)


(x2,y1) (x2, y2) (x2,yn)

(xn,y1) (xn, y2) (xn,yn)

Por lo anterior, se deberan generar dos matrices, una que represente al EJE X y otra que represente al
EJE Y, de modo que al superponerlas generen los pares ordenados anteriores. Esto es realizado por la
funcin meshgrid:
[X,Y]=meshgrid(x,y);
Los dos pasos anteriores podran realizarse simultneamente de la siguiente manera:
[X,Y]= meshgrid(x1: paso: xn, y1: paso: yn);

Ejemplo:
% Construccin de la malla de nodos:
[X,Y]=meshgrid(1:1:5, 1:1:10);

Las matrices generadas son las siguientes:

MATRIZ X (EJE X): MATRIZ Y (EJE Y):

Si x e y son iguales para formar una malla cuadrada, basta con poner una sola vez.
[x,y]= meshgrid (inicio: paso : final);

Determinacin de la altura correspondiente a cada nodo:


La altura correspondiente a cada nodo est determina por la funcin z = f(x,y). De esta manera ya se tienen
las ternas (x,y,z).

Ubicacin de las ternas (x, y, z) y su unin mediante malla, superficie o contorno:

Una vez que ya se tienen las ternas (x,y,z), solo resta colocarlas en una grfica 3D. De manera similar a
2D en donde plot coloca los pares ordenados (x,y) y los une con lneas de algn tipo, esta unin para
3D se realiza mediante 3 opciones bsicas:
a) malla (mesh): une las ternas (x,y,z) mediante un mallado tridimensional: mesh(x,y,z)
b) superficie (surf): une las ternas (x,y,z) mediante una superficie: surf (x,y,z)
c) contorno (contour): une las ternas (x,y,z) mediante un mapa de niveles (crculos en las partes donde
existen elevaciones y depresiones): .. contour3(x,xy,z)
d) una combinacin de las anteriores:
d1) malla y contorno (meshc): pone ambos, una malla y debajo del mismo el contorno.
d2) superficie y contorno (surfc): pone ambos, una superficie y debajo del mismo el contorno.

I.3 ILUMINACIN Y NGULO DE VISTA

Lightangle (azimut, elevacin): ubicacin de un foco de luz sobre el grfico.


View (azimut, elevacin): punto de visualizacin del grfico.

%ANIMACION DE UNA ESFERA MOVIENDOSE EN LA UBICACIN DE UN FOCO DE LUZ


SOBRE EL GRFICO
clc; clear all,close all;
%el comando figure esta fuera del lazo for para evitar que se creen
varias
%imagenes, es decir nos permitira graficar en solo una figura la
animacion
%de la esfera
figure;
for t=0:0.2:4*pi
%x1,y1,z1 nos permite definir la trayectoria circular en 3 dimensiones
de
%la esfera
x1=4*cos(t);
y1 =4*sin(t);
z1 = 4*sin(t);

%lafuncion sphere nos permite graficar una esfera de radio 1


[x,y,z] = sphere;
%con la funcion surf podemos graficar la esfera en cada diferente
posicion
%que va a ocupar en el tiempo
plot3(x1,y1,z1,'o')
surf(x+x1,y+y1,z+z1);
grid on;
xlabel('eje X'), ylabel('eje Y'), zlabel('eje Z')
title('Iluminacin y angulo de vista')
axis([-5 5 -5 5 -5 5 0 1])
getframe
pause(0.5);
end

EJEMPLO PARA COMPRENDER EL USO DE TODAS LAS INSTRUCCIONES 3D ANTERIORES:

SOMBRERO MEJICANO. Es una extensin a 3D de la funcin SINC en 2D.


%Grficas de malla, superficie, contorno y una mezcla de estas:
clc, close all, clear all
x=-7.5:0.5:7.5;
y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;

%Solo malla: mesh


subplot (2,2,1)
mesh(X,Y,Z)
title('Unin por medio de malla')

%Malla y contorno a la vez: meshc


subplot (2,2,2)
meshc(X,Y,Z)
title('Unin por medio de malla y contorno inferior')

% Solo superficie: surf


subplot (2,2,3)
surf(X,Y,Z)
title('Unin por medio de superficie')

%Superficie y contorno a la vez: meshc


subplot (2,2,4)
surfc(X,Y,Z)
title('Unin por medio de superficie y contorno inferior')

% Punto de vista e iluminacin con un ngulo de azimut y otro de elevacin:


view (40,45)
lightangle(35, 35)

I.4 GENERANDO ALGUNAS FUNCIONES EN COORDENADAS CARTESIANAS:

a) PLANOS:
Dos planos son paralelos si el rango de la matriz A es uno pero no son coincidentes es decir, el rango de
la matriz Ab es dos. Sean los planos: x-2y+z=1 y -2x+4y-2z=6
[x,y] = meshgrid(0:0.1:3);
z = 1-x+2*y;
hold on
mesh(x,y,z)
z = 3-x+2*y;
mesh(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
title('Planos paralelos')
grid on
hold off
view(120,30)

b) Paraboloide hiperblico

La funcin z = xy es la ecuacin de una superficie llamada paraboloide hiperblico. La representamos en


el rectngulo [1,1][1,1], en este caso es ms fcil disponer los valores de la funcin en una matriz z de
modo que la posicin en la matriz corresponda con las coordenadas del
punto (x,y), y podemos prescindir de la instruccin meshgrid.

x = -1:0.1:1; y = -1:.1:1;
z = y'*x; % ColumnaFila=Matriz cuadrada
surf(x,y,z) % Superficie de placas

c) Paraboloide elptico
Representemos el paraboloide elptico z = x2 + y2 en [1,1][1,1]
x = -1:0.1:1; y = -1:0.1:1;
[X,Y] = meshgrid(x,y);
z = X.^2 + Y.^2;
surf(x,y,z)

DEBER 2:

Realizar 5 ejemplos adicionales de FUNCIONES en 3D en coordenadas cartesianas.

1) CONO EN 3D
CODIGO:
clc
x = -5:0.1:5; y = -5:0.1:5;
[X,Y] = meshgrid(x,y);
z = sqrt( 16*((Y.^2)/4 + (X.^2)/3)) ;
surf(x,y,z)

GRAFICO:

2) HIPERBOLOIDE DE UNA HOJA:

CODIGO:

x = -5:0.1:5; y = -5:0.1:5;
[X,Y] = meshgrid(x,y);
z = X.^2-Y.^2;
surf(x,y,z)
GRAFICO:

3) ECUACION CUBICA EN 3D
CODIGO:
x = -5:0.1:5; y = -5:0.1:5;
[X,Y] = meshgrid(x,y);
z = (X+Y).^3;
surf(x,y,z)

GRAFICO:

4) FUNCION EXPONENCIAL EN 3D
CODIGO:
x = -2:0.2:2; y = -2:0.2:2;
[X,Y] = meshgrid(x,y);
z = exp(-(X.^2+Y.^2));
surf(x,y,z)
GRAFICO:

5) FUNCION LOGARITMICA EN 3D
CODIGO:
x = 0.00001:0.1:20; y = 0.00001:0.1:20;
[X,Y] = meshgrid(x,y);
z = Y -log(X);
surf(x,y,z)

GRAFICO:

DEBER 3:
12.7 Planos tangentes y rectas normales a su superficie (pag. 985): pasar a limpio y simulado en Matlab
todos los ejemplos. Esta parte deben hacer todos los grupos y adems:
EJEMPLOS DE LA PAG.985
1) EJEMPLO 1
CODIGO:
%OBTENGA LA ECUACION DE LA RECTA TANGENTE A LA PARABOLOIDE ELIPTICA
%4*x^2+y^2-16*z=0 en el punto [2 4 2]
x = -8:0.4:8; y = -8:0.4:8;
[X,Y] = meshgrid(x,y);
z = (4*X.^2 + Y.^2)/16;
figure
hold
grid
surf(x,y,z)
x1 = -8:0.4:8; y1 = -8:0.4:8;
[X1,Y1] = meshgrid(x1,y1);
z1=(2*X1+Y-4)/2;
surf(x1,y1,z1);
view (40,45)
lightangle(35, 35)

GRAFICO:

2) EJEMPLO 2
CODIGO:
%OBTENGA LAS ECUACIONES SIMETRICAS DE LA RECTA NORMAL A LA SUPERFICIE
DEL
%EJEMPLO 1 EN EL PUNTO [2 4 2]
x = -8:0.4:8; y = -8:0.4:8;
[X,Y] = meshgrid(x,y);
z = (4*X.^2 + Y.^2)/16;
figure
hold
grid
surf(x,y,z)
view (40,45)
lightangle(35, 35)
quiver3(2,4,2,-6,-3,6,'r');

GRAFICO:
3) EJEMPLO 3
CODIGO:

%OBTENGA LAS ECUACIONES SIMETRICAS DE LA RECTA TANGENTE A LA CURVA DE


%INTERSECCION DE LAS SUPERFICIES
clc;
hold on;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);

x1=linspace(-20,20,100);
y1=linspace(-20,20,100);
z1=linspace(-20,20,100);
[X1,Y1,Z1]=meshgrid(x1,y1,z1);

%Se define Q(x,y,z)=x^2+y^2+z^2-9


Q= 3*X.^2 +2*(Y.^2) +(Z.^2) -49;
K= (X1).^2 +(Y1.^2) -2*(Z1.^2) -10;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);

L=patch(isosurface(X1,Y1,Z1,K,0));
isonormals(X1,Y1,Z1,K, L);

%Para dibujar la superficie en color rojo


%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
set(L, 'FaceColor', 'blue', 'EdgeColor', 'none');

daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

4) EJEMPLO 4
CODIGO:
%DEMUESTRE QUE LAS ESFERAS SON TANGENTES EN EL PUNTO (2,0,0)
clc;
hold on;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= X.^2 +(Y.^2) +(Z.^2) -4;
K= (X-1).^2 +(Y.^2) +(Z.^2) -1;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);

L=patch(isosurface(X,Y,Z,K,0));
isonormals(X,Y,Z,K, L);

%Para dibujar la superficie en color rojo y azul


%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
set(L, 'FaceColor', 'blue', 'EdgeColor', 'none');
daspect([3 3 3])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')
GRAFICO:

5) EJEMPLO 5
CODIGO:
%UTILIZE EL GRADIENTE PARA ENCONTRAR UNA ECUACION DE LA RECTA TANGENTE
A LA
%CURVA X^3+Y^3=9 EN EL PUNTO [1 2]
x=-5:0.2:5
y=nthroot (9-x.^3,3)
hold;
plot(x,y)
grid
x1=-2:0.2:3.5;
y1=(-x1+9)/4;
plot(x1,y1);
legend('funcin','tangente')

GRAFICO:
Grupo DERECHA: los ejercicios 12.7 (pares) (pags. 989 y 990)
HACER LOS EJERCICIOS PARES DE LAS PAGINAS 989 Y 990 DEL LIBRO DE LEITHOLD

1) EJERCICIO #2 + + = ; (, , )
CODIGO:
clc;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= 4*X.^2 +(Y.^2) +3*(Z.^2) -26;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);
%Para dibujar la superficie en color rojo
%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

2) EJERCICIO #4

CODIGO:
clc;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= X.^2 +(Y.^2) -(Z.^2) -6;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);
%Para dibujar la superficie en color rojo
%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

3) EJERCICIO #6

CODIGO:
clc;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define la funcion Q(x,y,z)
Q= Z - exp(3*X).*sin(3*Y);
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);
%Para dibujar la superficie en color rojo
%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

4) EJERCICIO #8

CODIGO:
clc
x = 0:0.1:5; y = 0:0.1:5;
[X,Y] = meshgrid(x,y);
z =Y.^(1/2) + X.^(2/3);
surf(x,y,z)

GRAFICO:
5) EJERCICIO #10

CODIGO:
clc;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= Z.*X.^2 -X.*(Y.^2) -Y.*(Z.^2) -18;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);
%Para dibujar la superficie en color rojo
%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

6) EJERCICIO #12

CODIGO:
clc;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= X.^(1/2) + Z.^(1/2) -8;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);
%Para dibujar la superficie en color rojo
%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

7) EJERCICIO #14

CODIGO:
clc;
hold on;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);

x1=linspace(-20,20,100);
y1=linspace(-20,20,100);
z1=linspace(-20,20,100);
[X1,Y1,Z1]=meshgrid(x1,y1,z1);

%Se define Q(x,y,z)=x^2+y^2+z^2-9


Q= X.^2 +(Y.^2) -2*Z -1;
K= (X1.^2) +(Y1.^2) -(Z1.^2) ;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);

L=patch(isosurface(X1,Y1,Z1,K,0));
isonormals(X1,Y1,Z1,K, L);

%Para dibujar la superficie en color rojo


%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
set(L, 'FaceColor', 'blue', 'EdgeColor', 'none');

daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

8) EJERCICIO #16

CODIGO:
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= X-2-cos(pi*Y.*Z);
K=Y1-1-sin(pi*X1.*Z1) ;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);

L=patch(isosurface(X1,Y1,Z1,K,0));
isonormals(X1,Y1,Z1,K, L);

%Para dibujar la superficie en color rojo


%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
set(L, 'FaceColor', 'blue', 'EdgeColor', 'none');

daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

9) EJERCICIO #18

CODIGO:
clc;
hold on;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);

x1=linspace(-20,20,100);
y1=linspace(-20,20,100);
z1=linspace(-20,20,100);
[X1,Y1,Z1]=meshgrid(x1,y1,z1);

%Se define Q(x,y,z)=x^2+y^2+z^2-9


Q= X.^2 -3*X.*Y +(Y.^2) -Z;
K= 2*(X1).^2 +(Y1.^2) -3*(Z1) +27;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);

L=patch(isosurface(X1,Y1,Z1,K,0));
isonormals(X1,Y1,Z1,K, L);

%Para dibujar la superficie en color rojo


%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
set(L, 'FaceColor', 'blue', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight

GRAFICO:

10) EJERCICIO #20

CODIGO:
clc;
hold on;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);

x1=linspace(-20,20,100);
y1=linspace(-20,20,100);
z1=linspace(-20,20,100);
[X1,Y1,Z1]=meshgrid(x1,y1,z1);

clc;
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= X.^2 +2*(Y.^2) +(Z.^2) -8;
K= Y1.*Z1-4;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);

L=patch(isosurface(X1,Y1,Z1,K,0));
isonormals(X1,Y1,Z1,K, L);

%Para dibujar la superficie en color rojo


%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
set(L, 'FaceColor', 'blue', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:

11) EJERCICIO #22

CODIGO:
clc;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= X.^4 +(Y.^4) -32;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);
%Para dibujar la superficie en color rojo
%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:
12) EJERCICIO #24

CODIGO:
clc;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);
%Se define Q(x,y,z)=x^2+y^2+z^2-9
Q= X.^4 -(Y.^2) +2*X.*Y -4;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);
%Para dibujar la superficie en color rojo
%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:
13) EJERCICIO #26

CODIGO:
clc;
hold on;
grid;
x=linspace(-20,20,100);
y=linspace(-20,20,100);
z=linspace(-20,20,100);
[X,Y,Z]=meshgrid(x,y,z);

x1=linspace(-20,20,100);
y1=linspace(-20,20,100);
z1=linspace(-20,20,100);
[X1,Y1,Z1]=meshgrid(x1,y1,z1);

%Se define Q(x,y,z)=x^2+y^2+z^2-9


Q= 4*X.^2 +9*(Y.^2).*(Z.^2) -108;
K= X1.*(Y1.*Z1) -36;
%Se representa la superficie de nivel Q(x,y,z)=0
H=patch(isosurface(X,Y,Z,Q,0));
isonormals(X,Y,Z,Q, H);

L=patch(isosurface(X1,Y1,Z1,K,0));
isonormals(X1,Y1,Z1,K, L);

%Para dibujar la superficie en color rojo


%e iluminada
set(H, 'FaceColor', 'red', 'EdgeColor', 'none');
set(L, 'FaceColor', 'blue', 'EdgeColor', 'none');

daspect([1 1 1])
view(3)
camlight
lighting phong
axis equal
xlabel('x'); ylabel('y'); zlabel('z')

GRAFICO:
II.5 APLICACIN A IMGENES:

GRAFICAS DE ESCALA DE GRISES MOSTRADAS EN 3D

clc, close all, clear all

% Lectura de la imagen RGB (Red-Green-Blue):


imagen_1 = imread('tere_ojos_abiertos.JPG'); % hipermatriz <480x640x3 uint8>
T = imagen_1; % variable auxiliar
imshow(T)

Escala_grises = rgb2gray(T);

figure
imshow(Escala_grises) % <480x640 uint8>

% Para mostrarle en 3D, la grilla <480x640> (meshgrid) tiene como alturas


% a los valores de la matriz de escala de grises --> surf

[a, b] = size(Escala_grises);

[X,Y]=meshgrid(1:1:b, 1:1:a);

Z=double(Escala_grises);

figure
meshc(X,Y,Z)

figure
surfc(X,Y,Z)
APLICADO A IMAGEN DE JESS:

Negativo 3d

http://www.imprimalia3d.com/noticias/2015/04/13/004608/s-bana-santa-3d-invidentes
clc, close all, clear all

% Lectura de la imagen RGB (Red-Green-Blue):


imagen_1 = imread('Sabana_Santa.jpg'); % hipermatriz <480x640x3 uint8>
T = imagen_1; % variable auxiliar
imshow(T)

Escala_grises = rgb2gray(T);
figure
imshow(Escala_grises) % <480x640 uint8>

%% A NEGATIVO:
Negativo=imadjust(Escala_grises,[0 1],[1 0]);
figure
imshow(Negativo);
title('Imagen Negativo');

%% Para mostrarle en 3D, la grilla <480x640> (meshgrid) tiene como alturas


% a los valores de la matriz de escala de grises --> surf
[a, b] = size(Escala_grises);
[X,Y]=meshgrid(1:1:b, 1:1:a);
Z=double(Escala_grises);
figure
meshc(X,Y,Z)

%% Con el negativo --> surf


[a, b] = size(Negativo);
[X,Y]=meshgrid(1:1:b, 1:1:a);
Z=double(Negativo);
figure
meshc(X,Y,Z)
ESCALA DE GRISES:

3D DE LA ORIGINAL EN ESCALA DE GRISES:


3D DE LA DEL NEGATIVO:

Observacin: para obtener mejores resultados, se puede aplicar tcnicas de INTERPOLACIN.

You might also like