Matlab - axes, dibujo 3D

   
Vista:

axes, dibujo 3D

Publicado por Antonio antmarcue@hotmail.com (32 intervenciones) el 14/04/2011 17:26:31
Buenas tardes, mi problema es el siguiente:
Hago un dibujo 3D que tiene varias superficies, todas ellas dibujadas con el comando 'mesh'. Este dibujo está en unos 'axes' que a su vez están dentro de un 'figure' (lo normal vamos).
Una vez terminado el dibujo, saco varias vistas de planta, alzado y perfil de este dibujo 3D. Para esta labor utilizo el comando 'view'. A su vez, voy sacando un hardcopy de estas vistas con el comando 'print'. Pero cada una por separado.
Lo que no consigo de ninguna manera es meter esas vistas que saco con 'view' en la misma ventana gráfica de manera que pueda meter en una sola hoja todas las vistas. Es decir, que si saco por ejem. tres vistas del dibujo 3D con el comando 'view', pues necesito colocar esos tres dibujos en la misma hoja, de manera que pueda hacer un hardcopy donde me aparezcan las tres.
He probado con todos los comandos que he encontrado, sin resultado (figure, axes, get, set, copyobj, findobj, view, subplot, etc...). Creo que quizás no estoy utilizando estos comandos de la forma correcta. ¿Alguien puede ayudarme?

Gracias por vuestro tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

axes, dibujo 3D

Publicado por hectormv (57 intervenciones) el 15/04/2011 06:43:39
Si entendí bien su problema, tal vez lo que tiene que usar es subplot
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

axes, dibujo 3D

Publicado por Antonio antmarcue@hotmail.com (32 intervenciones) el 15/04/2011 12:34:48
Hola hectormv.

Pues ya probé con el comando 'subplot' pero sin resultado. El tema es ¿como hago para que las vistas que genero con 'view' se metan en unos 'axes' determinados? y ¿como coloco esos 'axes' con el comando 'subplot'?

gracias por tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

axes, dibujo 3D

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 15/04/2011 18:15:12
Hola Antonio.
A mi parecer quieres algo asi:
Ejecutas el programa, luego activas Rotare 3D y haces girar la primera figura a tu gusto, luego esperas que aparesca la segunda grafica, luego giras a tu gusto tambien la segunda graafica y asi sucevivamente. OJo espera hasta que aparesca la grafica para poder rotar a tu gusto.
Esta hecho con el comando subplot.
Espero que se ayuda

clear all
clc, close all
x=-4:0.25:4; y=-6:0.25:6;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;

subplot(2,2,1)
mesh(X,Y,Z)
pause(8)
[az,el]=view;
v=axis;
hold on

subplot(2,2,2)
mesh(X,Y,Z)
axis(v);
view(az,el);
pause(5)
[az,el]=view;
v=axis;

subplot(2,2,3)
mesh(X,Y,Z)
axis(v);
view(az,el);
pause(5)
[az,el]=view;
v=axis;
hold off

subplot(2,2,4)
mesh(X,Y,Z)
axis(v);
view(az,el);
pause(1)
[az,el]=view;
v=axis;


JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS EN MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
PROGRAMADOR EN MATLAB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

axes, dibujo 3D

Publicado por Antonio antmarcue@hotmail.com (32 intervenciones) el 19/04/2011 13:59:03
Hola José, efectivamente haciéndolo de la manera en la que me explicas se consigue sacar las cuatro vistas en una sola ventana, pero para esto tienes que realizar el dibujo 4 veces 'mesh(X,Y,Z)'. Mi problema es que el dibujo sobre el que saco varias vistas no consiste en una sola línea sino que se compone de varias hojas de código.

Visto de desde tu ejemplo, ¿Existe alguna manera de hacer el dibujo una sola vez al principio, copiarlo o darle algún nombre que lo identifique para despues ir llamándolo en los sucesivos 'subplot' y simplemente ir cambiando con el 'view' las vistas que necesito colocar en la ventana?

Muchas gracias por tu interes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

axes, dibujo 3D

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 19/04/2011 16:25:45
Hola Antonio.
Hice unos al arreglos al programa que hice, segun estas deseando. He credao dos archivos function, una para rotaciones y el otro para la grafica. Cada vez que rotes va a llamar al archivo de grafica y lo a graficar, ademas el numero de graficas en el subplot ya es arbitrario. Si hay dudas vuelvesa escribir. Todo el programa de abajo lo copias en el editor de matlab y los guardas con el nombre de angulos1.m es un solo archivo.
Copias desde function angulos1 hasta G=mesh(X,Y,Z);
y lo ejecutas con el nombre de angulos1



function angulos1
clear all
clc, close all
n=2; % numero de filas de subplot
m=2; %numero de columas del subplot
k=n+m; % numero maximo de graficas en el subplot
subplot(n,m,1)
grafica;
pause(8)
[az,el]=view;
v=axis;
hold on

for i=2:k
subplot(n,m,i)
grafica;
axis(v);
view(az,el);
pause(5)
[az,el]=view;
v=axis;
end
hold off

function G=grafica
x=-4:0.25:4; y=-6:0.25:6;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
G=mesh(X,Y,Z);




JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar