Matlab - Como colocar un plano 2D (es decir pcolor) en una Superficie 3D (surf),

   
Vista:

Como colocar un plano 2D (es decir pcolor) en una Superficie 3D (surf),

Publicado por daniel (1 intervención) el 04/04/2012 00:31:06
Hola, Megustaria saber como poder añadir una imagen 2D, creada con el comando "pcolor" (por ejemplo) a una superficie 3D, creadad con el comando "surf", de manera que, esta imagen corte a la superficie, es decir, que el plano que contiene a la imagen sea perpendicular al plano XY o XZ o YZ (es decir que que la imagen este en el/los planos verticales de la superficie).

tengo aqui un ejemplo en el que el plano de la imagen 2D corresponde a un plano horizontal, y no corta a la superficie.


clear all; close all; clc
%Generate a surface to plot in 3d
z=peaks;
%Generate an image to plot on the xy plane (z=0)
imOnXY=rand([size(peaks,1),size(peaks,2),3]);
figure(1);
%Show the image
x=0*peaks-10;
hold on
surface(x,imOnXY,'FaceColor','texturemap','EdgeColor','none','CDataMapping','direct')
surface(z,'FaceAlpha',0.5,'LineStyle','none','FaceColor','interp');
axis on
view(-35,45)

Saludos,
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

Como colocar un plano 2D (es decir pcolor) en una Superficie 3D (surf),

Publicado por Jorge (226 intervenciones) el 06/04/2012 10:32:04
Siguiendo el mismo ejemplo que pusiste...

Esta línea
imOnXY=rand([size(peaks,1),size(peaks,2),3]);

genera un plano con colores aleatorios. Si quieres solamente un color, cámbiala por
imOnXY = .8 * ones( [size(peaks, 1), size(peaks, 2), 3] );

el coeficiente inicial es el que genera el color. Cámbialo de 0 a 1.

La línea
x=0*peaks-10;

es la que baja o sube el plano. Está a z = -10

Cámbiala por
x = 0*peaks - 5;

y tendrá altura z = -5
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