Anda di halaman 1dari 7

Universidad Tecnolgica Nacional

Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 6

Departamento de Ingeniera Qumica

Grficos 3D

ANEXO
Grficos en 3D con PLOT3D
Scilab puede generar grficos en 3D utilizando la funcin plot3d (x,y,z, argumentos). Estos
grficos son realmente una superficie representada por los valores de (x,y,z) para realizar un grfico
con esta funcin hay que tener en cuenta loi siguiente:
x y y son vectores de xm y yn dimensin, z una matriz de dimensiones (xm, yn)
Z(i,j) son los valores de la superficie en el punto (x(i),y(j)).
Ejemplo en SCILAB:
-->//graficar el seno de una funcion en 3D.
-->x=0:0.1:2*%pi;
-->y=sin(x);
-->z=y'*ones(1,63);
-->plot3d(x,x/2,z);
El resultado se muestra en la figura 1
Figura 1 : seno de una funcin en 3D

En el anterior grfico tenemos un vector fila x de 63 componentes, la funcin y igual a seno(x),


con estos datos formamos nuestra matriz cuadrada z
Otro ejemplo con vectores de diferente dimensin:
En SCILAB:
-->y=-5:0.1:5;
-->b=-3:0.1:3;
-->z=y'*(-b**2+2);
-->plot3d(y,b,z);
El resultado se muestra en la figura 2

Ing. Carlos Jos Siccatto

Pgina 1 de 7

Universidad Tecnolgica Nacional

Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 6

Departamento de Ingeniera Qumica

Grficos 3D

Figura 2: ejemplo con vectores de diferentes


dimensiones

El Argumento leg=
Leg= leyenda del grfico, al igual que con plot2d(), podemos escribir una cadena de caracteres para
cada eje, separados por el signo @
-->y=-5:0.1:5;
-->b=-3:0.1:3;
-->z=y'*(-b**2+2);
-->plot3d1(y,b,z,leg="eje x@eje y@eje z");

El resultado se muestra en la figura 3.


Grfico en 3D usando leg=

Otros ejemplos que podemos probar en grficos 3D, utilizando la funcin plot3d dibuja una superficie
en 3 dimensiones, ejemplo.
-->t=[0:0.3:2*%pi];
-->z=sin(t)*cos(t);
-->plot3d(t,t,z,);

Ing. Carlos Jos Siccatto

Pgina 2 de 7

Universidad Tecnolgica Nacional

Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 6

Departamento de Ingeniera Qumica

Grficos 3D

Ahora se ver como se representa una funcin de dos variables


Ahora, vamos a ejecutar los siguientes comandos:
-->t=[0:0.3:2*%pi]';
-->z=sin(t)*cos(t');
--> [xx,yy,zz]=genfac3d(t,t,z);
-->clf()
-->plot3d(xx,yy,zz)
se obtendr la misma representacin de la superficie.

Ing. Carlos Jos Siccatto

Pgina 3 de 7

Universidad Tecnolgica Nacional

Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 6

Departamento de Ingeniera Qumica

Grficos 3D

Si utilizamos dos vectores definidos de la siguiente manera.


-->u = linspace(-%pi/2,%pi/2,40);
-->v = linspace(0,2*%pi,20);
-->X = cos(u)'*cos(v);
-->Y = cos(u)'*sin(v);
-->Z = sin(u)'*ones(v);
-->plot3d2(X,Y,Z);

Estos son unos ejemplos de las posibilidades que Scilab ofrece para el uso de grficos 3D.
Funcin PARAM3D
La funcin param3d es anloga a su homloga bidimensional plot2d. Su forma ms sencilla es la
siguiente
-->param3d(x,y,z);
que dibuja una lnea que une los puntos (x(1), y(1), z(1)), (x(2), y(2), z(2)), etc. y la proyecta sobre un
plano para poderla representar en la pantalla. Al igual que en el caso plano, se puede incluir una
cadena de 1, 2 3 caracteres para determinar el color, los markers, y el tipo de lnea, tambin se
pueden utilizar tres matrices X, Y y Z del mismo tamao:
-->param3d(X,Y,Z)
en cuyo caso se dibujan tantas lneas como columnas tienen estas 3 matrices, cada una de las cuales
est definida por las 3 columnas homlogas de dichas matrices.
A continuacin se va a realizar un ejemplo sencillo consistente en dibujar un cubo. Para ello se crear
una matriz que contenga las aristas correspondientes, definidas mediante los vrtices del cubo como
una lnea poligonal continua (obsrvese que algunas aristas se dibujan dos veces). La matriz A cuyas

Ing. Carlos Jos Siccatto

Pgina 4 de 7

Universidad Tecnolgica Nacional

Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 6

Departamento de Ingeniera Qumica

Grficos 3D

columnas son las coordenadas de los vrtices, y cuyas filas son las coordenadas x, y y z de los
mismos:
-->A=[0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0
--> 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1
--> 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0];
-->param3d(A(1,:)',A(2,:)',A(3,:)')

Se puede realizar la representacin grfica del espiral utilizando el comando param3d:


-->t=linspace(0,4*%pi,100);
-->param3d(cos(t),sin(t),t)

Ing. Carlos Jos Siccatto

Pgina 5 de 7

Universidad Tecnolgica Nacional

Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 6

Departamento de Ingeniera Qumica

Grficos 3D

Dibujo de mallados: Funciones PLOT3D, PLOT3D2, PLOT3D3


Ahora se ver con detalle cmo se puede dibujar una funcin de dos variables (z=f(x,y)) sobre un
dominio rectangular. Se ver que tambin se pueden dibujar los elementos de una matriz como
funcin de los dos ndices.
Sean x e y dos vectores que contienen las coordenadas en una y otra direccin de la retcula (grid)
sobre la que se va a dibujar la funcin. Despus hay que crear dos matrices X (cuyas filas son copias
de x) e Y (cuyas columnas son copias de y). Estas matrices se crean con la funcin genfac3d. Estas
matrices representan respectivamente las coordenadas x e y de todos los puntos de la retcula. La
matriz de valores Z se calcula a partir de las matrices de coordenadas X e Y. Finalmente hay que
dibujar esta matriz Z con la funcin plot3d3, cuyos elementos son funcin elemento a elemento de los
elementos de X e Y. Vase como ejemplo el dibujo de la funcin sen(r)/r (siendo r=sqrt(x2+y2); para
evitar dividir por 0 se suma al denominador el nmero pequeo eps):
-->clf
-->u = linspace(-%pi/2,%pi/2,40);
-->v = linspace(0,2*%pi,20);
-->X = cos(u)'*cos(v);
-->Y = cos(u)'*sin(v);
-->Z = sin(u)'*ones(v);
-->plot3d2(X,Y,Z);

Se habr podido comprobar que la funcin plot3d2 dibuja en perspectiva una funcin en base a una
retcula de lneas de colores, rodeando cuadrilteros del color de fondo, con eliminacin de lneas
ocultas. Ejectese ahora el comando:
-->plot3d2(X,Y,Z)
En vez de lneas aparece ahora una superficie faceteada (aunque no es fcilmente visible, pero de
manera terica es as). El color de las facetas depende tambin del valor de la funcin.

Ing. Carlos Jos Siccatto

Pgina 6 de 7

Universidad Tecnolgica Nacional

Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 6

Departamento de Ingeniera Qumica

Grficos 3D

Dibujo de lnea de contorno: Funcin CONTOUR


Una forma distinta de representar funciones tridimensionales es por medio de isolneas o curvas de
nivel.
-->t=%pi*[-10:10]/10;
-->deff("[z]=surf(x,y)","z=sin(x)*cos(y)"); z=feval(t,t,surf);
-->rect=[-%pi,%pi,-%pi,%pi,-1,1];
-->contour(t,t,z,10,35,45," ",[0,1,0],rect)

De esta manera terminamos el captulo de grficos en SCILAB, aunque tratamos de cubrir el tema de
forma amplia, queremos recomendar el uso de los comandos de ayuda help plot y apropos
graphics, para observar las caractersticas de los comandos de grficos que no se han nombrados
en este anexo.

Ing. Carlos Jos Siccatto

Pgina 7 de 7

Anda mungkin juga menyukai